2017-05-03 8 views
0

こんにちは私は何か非常に基本的なものを達成しようとしていますし、プロセスでは失敗しています。 JSFからBeanにユーザー名とパスワードを渡し、Beanのメソッドでそれらを使用してデータベースにユーザーを追加する必要があります。 Unfortunetly入力は豆にまったく届かないため、パスワードもログインもnullにならないので、javax.ejb.EJBTransactionRolledbackExceptionになります。 Log4jのログは、引数が実際にここでbeanへのJSF pasing入力が機能しません

[2017-05-03T16:50:18.948+0200] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=32 _ThreadName=http-thread-pool::http-listener-2(1)] [timeMillis: 1493823018948] [levelValue: 800] [[ 

    464239 [http-thread-pool::http-listener-2(1)] DEBUG pl.lodz.p.it.ssbd2017.ssbd06.mok.facades.AbstractFacade - log4j: login null]] 



[2017-05-03T16:50:18.949+0200] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=32 _ThreadName=http-thread-pool::http-listener-2(1)] [timeMillis: 1493823018949] [levelValue: 800] [[ 

    464240 [http-thread-pool::http-listener-2(1)] DEBUG pl.lodz.p.it.ssbd2017.ssbd06.mok.facades.AbstractFacade - log4j: passwordnull]] 

ヌルであることを示しているJSF

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
     xmlns:f="http://xmlns.jcp.org/jsf/core"> 
<body> 
<f:view> 
    <h:form> 
     <h:outputLabel value="LOGIN: "/> 
     <h:inputText value="#{createBean.login}"/> 
     <h:outputLabel value="PASSWORD : "/> 
     <h:inputText value="#{createBean.password}"/> 
     <h:commandButton value="Register" action="#{createBean.create()}"/> 

    </h:form> 

</f:view> 
</body> 
</html> 

、ここで豆から

@Named("createBean") 
@RequestScoped 
public class CreateBean { 

    @Inject 
    private MOKEndpointLocal mokEndpoint; 

    private String login; 
    private String password; 

    static Logger log = Logger.getLogger(CreateBean.class); 


    public CreateBean() { 
    } 

    public String getLogin() { 
     return login; 
    } 

    public void setLogin(String login) { 
     this.login = login; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

// public String getTest() { 
//  return "test"; 
// } 

    public void create() { 
     log.debug("logBean: login " + login); 
     log.debug("logBean: pass " + password); 
     mokEndpoint.create(login, password); 
    } 
} 

からのコードは、誰も私を助けることができるです?

+0

@Named( "createBean")を使用すると完了します。そうしないとプロジェクト設定が表示されます –

+0

あなたは 'web.xml'をどのような設定ファイルにしたいのですか? – Dargor66

+0

「RequestScoped」はどのようなタイプですか? –

答えて

0

お手数をおかけしていただきありがとうございます。javax.enterprise.context.RequestScopedが正しいと分かりました。 jsfが魔法のように動作するようになった後、リポジトリの以前のコミットをチェックアウトして、diffは以前私がjavax.faces.bean.RequestScopedを使っていたことを示していました。今それはうまく動作します。

もう一度おねがいします。

関連する問題