1
jsf-application을 코딩하고 있습니다.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 ------------------------------
괜찮아 나는 시간을 사용 하지만 난 여전히 null이 다시 :
먼저 : inputText -> 빈에서 그것을 읽습니다 - 당신이 그 값을 조작 할 수 있습니다 (예 : 쓰기 목록에 쓰기) ...
그주기에는 어떤 문제가 있습니까? 또는 내 코드 ...
업데이트 2 ------------------------------ 내 setter 메소드 :
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String pwd) {
this.pwd = pwd;
}
범위를 벗어 났지만 그 이유는 무엇입니까?
당신은 예를 들어, 여러분의 빈 필드에 대한 세터가 있습니까 'setUsername (...)'? 게다가 당신은 일반적으로 소문자 첫 글자로 bean을 호출 할 필요가있다. (주석에 명시 적으로 'Register'라고 지정하지 않았다면). –
예 저는 setter가 있지만 내 * .xhtml 파일에서 호출하지 않습니다. – maximus
아니요, JSF가 자동으로 호출해야합니다. setter 메소드 안에 중단 점을 설정하고 도달했는지 확인할 수 있습니다. –