JSF 页面输入文本未在 bean 中设置属性
我的 JSF 登录页面未在我的 bean 中设置属性。这是我的 Login.xhtml 的一部分:
<h:form>
<h:outputLabel value="#{controllerBean.foutmelding}" id="foutmelding"></h:outputLabel><br />
<table width="50px" align="center">
<tr>
<td align="left">
<h:outputLabel for="gebruiker" value="Gebruikersnaam:"/>
</td>
<td>
<h:inputText id="gebruiker" required="true" value="#{controllerBean.gebruiker}"></h:inputText>
</td>
</tr>
<tr>
<td align="left">
<h:outputLabel for="wachtwoord" value="Wachtwoord:"/>
</td>
<td>
<h:inputSecret id="wachtwoord" required="true" value="#{controllerBean.wachtwoord}"></h:inputSecret>
</td>
</tr>
<tr>
<td align="right" colspan="2">
<h:commandButton value="Inloggen" styleClass="button" action="#{controllerBean.showLogin}"></h:commandButton>
</td>
</tr>
</table>
</h:form>
'gebruiker' 和 'wachtwoord' 应在以下代码中的 bean 中设置:
@Named(value="controllerBean")
@SessionScoped
public class ControllerBean implements Serializable {
/** Datafields */
public String gebruiker;
public String wachtwoord;
public String getGebruiker() {
return gebruiker;
}
public void setGebruiker(String gebruiker) {
this.gebruiker = gebruiker;
}
public void setWachtwoord(String wachtwoord) {
this.wachtwoord = wachtwoord;
}
public String getWachtwoord() {
return wachtwoord;
}
public String showLogin() {
if (gebruiker != null && gebruiker.length() > 0 && wachtwoord != null && wachtwoord.length() > 0) {
Klant k = controller.getKlant(gebruiker);
if (k == null) {
foutmelding = "Gebruikersnaam is onjuist.";
return "Login.xhtml";
}
if (!k.getWachtwoord().equals(wachtwoord)) {
foutmelding = "Wachtwoord is onjuist.";
return "Login.xhtml";
}
ingelogdeKlant = k;
foutmelding = "";
return "Home.xhtml";
} else {
// Geen gebruikersnaam of wachtwoord ingevuld.
foutmelding = "Vul uw gebruikersnaam en wachtwoord in.";
}
return "Login.xhtml";
}
}
当我在 Netbeans 中调试时,值 'gebruiker' 和 'wachtwoord' 为 null。
My JSF login page doesn't set the property in my bean. This is the part of my Login.xhtml:
<h:form>
<h:outputLabel value="#{controllerBean.foutmelding}" id="foutmelding"></h:outputLabel><br />
<table width="50px" align="center">
<tr>
<td align="left">
<h:outputLabel for="gebruiker" value="Gebruikersnaam:"/>
</td>
<td>
<h:inputText id="gebruiker" required="true" value="#{controllerBean.gebruiker}"></h:inputText>
</td>
</tr>
<tr>
<td align="left">
<h:outputLabel for="wachtwoord" value="Wachtwoord:"/>
</td>
<td>
<h:inputSecret id="wachtwoord" required="true" value="#{controllerBean.wachtwoord}"></h:inputSecret>
</td>
</tr>
<tr>
<td align="right" colspan="2">
<h:commandButton value="Inloggen" styleClass="button" action="#{controllerBean.showLogin}"></h:commandButton>
</td>
</tr>
</table>
</h:form>
The 'gebruiker' and 'wachtwoord' should be set in the bean in the following code:
@Named(value="controllerBean")
@SessionScoped
public class ControllerBean implements Serializable {
/** Datafields */
public String gebruiker;
public String wachtwoord;
public String getGebruiker() {
return gebruiker;
}
public void setGebruiker(String gebruiker) {
this.gebruiker = gebruiker;
}
public void setWachtwoord(String wachtwoord) {
this.wachtwoord = wachtwoord;
}
public String getWachtwoord() {
return wachtwoord;
}
public String showLogin() {
if (gebruiker != null && gebruiker.length() > 0 && wachtwoord != null && wachtwoord.length() > 0) {
Klant k = controller.getKlant(gebruiker);
if (k == null) {
foutmelding = "Gebruikersnaam is onjuist.";
return "Login.xhtml";
}
if (!k.getWachtwoord().equals(wachtwoord)) {
foutmelding = "Wachtwoord is onjuist.";
return "Login.xhtml";
}
ingelogdeKlant = k;
foutmelding = "";
return "Home.xhtml";
} else {
// Geen gebruikersnaam of wachtwoord ingevuld.
foutmelding = "Vul uw gebruikersnaam en wachtwoord in.";
}
return "Login.xhtml";
}
}
When I debug in Netbeans, the values 'gebruiker' and 'wachtwoord' are null.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使其像
@ManagedBean
默认情况下将 bean 的名称添加到controllerBean
中,并且还会将此 POJO 注册为 ManagedBaenMake it like
@ManagedBean
will by default add name of the bean tocontrollerBean
and also will register this POJO as ManagedBaen