1
私はjsfアプリケーションをコーディングしています。ここに私のコードは次のとおりです。h:inputText - 入力を豆に入れませんか?
register.xhtml:
<fieldset>
<div>
<h:outputLabel class="Float" for="username" value="Username"/>
<h:inputText id="username" rendered="true" value="#{Register.username}" label="Username">
<f:validateLength minimum="3" maximum="8"/>
</h:inputText>
</div>
<div>
<h:outputLabel class="Float" for="password" value="Passwort"/>
<h:inputText id="password" rendered="true" value="#{Register.password}" label="Passwort">
<f:validateLength minimum="3" maximum="8"/>
</h:inputText>
</div>
</fieldset>
<div id="buttons">
<h:form id="buttons">
<h:commandButton id="enter" accesskey="r" value="Registrieren" action="#{Register.registerPlayer()}" immediate="true"/>
<h:outputText value="#{msg.wrongpwd}" rendered="#{loginCtrl.loginfailed}" style="color: red"/>
<h:messages style="color: red"/>
</h:form>
</div>
</form>
...
Register.java:
public String getUsername() {
return username;
}
public String getPassword() {
return pwd;
}
public void registerPlayer() {
this.nameList.add(getUsername());
this.passwordList.add(pwd);
System.out.println(getUsername() + " : " + pwd + " :successfully registered!!!");
}
私の問題は、私はボタンを押したときに、私は出力として取得することです:
null:null:正常に登録されました!
これはなぜですか?
UPDATE 1 ------------------------------
OK IはHを使用した:formタグをしかし、私はまだnullを返す:
最初に:inputTextで書いてください - >豆はそれを読み込みます - >あなたはその値を操作することができます(例:リストに書き込む) ...
このサイクルで何が問題になりますか?または私のコード...
UPDATE 2 ------------------------------ マイsetterメソッド:
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String pwd) {
this.pwd = pwd;
}
彼らは手の届かないところですが、なぜですか?
の両方を含んでいるあなたは、あなたのBeanフィールドのためのセッターを持っていますか、例えば'setUsername(...)'?さらに、通常は、小文字の最初の文字で豆を呼び出す必要があります(アノテーションに明示的に 'Register'という名前を付けていない限り)。 –
ええ私はセッターを持っていますが、私の* .xhtmlファイルでそれらを呼び出すことはありません。 – maximus
いいえ、JSFによって自動的に呼び出されます。 setterメソッドの中にブレークポイントを設定し、それに達しているかどうかをチェックすることができます。 –