将facesmessage绑定到xhtml页面中的标记

时间:2017-04-25 13:36:02

标签: java jsp

我想将facesmessage绑定到xhtml页面中的特定组件。 我的面孔消息看起来像这样:

ctx.addMessage("newAdmin:email", new FacesMessage(FacesMessage.SEVERITY_WARN, "No email!", "You should enter a email"));

这样clientId就是“newAdmin:email”。 我的xhtml页面如下所示:

<h:body>
<h:form class="text-left" id="newAdmin">
    <h1 class="centerTxt">Televic Login</h1>
    <h:messages class="error" globalOnly="true" />
    <label>Email</label>
    <h:inputText class="form-control" id="lg_username" value= "#{userController.email}"></h:inputText>
    <h:message for="email"></h:message>
    <h:commandButton class="btn btn-success" value="Login" action = "#{userController.login()}"></h:commandButton>

</h:form>

当我将clientId设置为“null”时,它会将消息绑定到全局消息标记,但绑定到特定消息标记将不起作用。 怎么了?我怎样才能找到合适的clientId?

1 个答案:

答案 0 :(得分:0)

我在JSF文件中看不到任何带有电子邮件ID的组件。 for组件的h:message属性将消息附加到具有相应ID的组件。它似乎应该是:

<h:message for="lg_username"></h:message>

并在您的Java代码中:

ctx.addMessage("newAdmin:lg_username", new FacesMessage(FacesMessage.SEVERITY_WARN, "No email!", "You should enter a email"));