【发布时间】:2017-07-15 14:22:15
【问题描述】:
我不清楚addMessage() 和FacesMessage 是如何工作的。如果我没有指定<h:message> 来显示消息,则会显示摘要消息。但是如果我为其创建一个<h:message> 字段,则会显示详细消息。为什么?如何选择要显示的消息?以下是我的代码:
豆子
public String login()
{
if(password.equals("123123"))
{
session.setAttribute("username", username);
return "home";
}
else
{
FacesContext.getCurrentInstance().addMessage("loginForm", new FacesMessage(FacesMessage.SEVERITY_WARN,"Incorrect Username and Passowrd", "Please enter correct username and Password"));
return "login";
}
}
JSF
<h:form id="loginForm">
<h:outputLabel for="username" value="Username: " />
<h:inputText id="username" value="#{loginBean.username}" required="true" requiredMessage="Username is required" />
<h:message for="username"></h:message>
<br /><br />
<h:outputLabel for="password" value="Password: " />
<h:inputSecret id="password" value="#{loginBean.password}"></h:inputSecret>
<h:message for="password"></h:message>
<br /><br />
<h:commandButton action="#{loginBean.login()}" value="Login"></h:commandButton>
<br /><br />
</h:form>
但如果我将<h:message for="loginForm"></h:message> 添加到我的代码中,输出将是:
它显示的是详细消息而不是摘要消息,实际上这没什么大不了的,但我只想知道为什么会这样?谁能解释一下?
【问题讨论】:
标签: jsf-2