单击"提交"按钮后,我必须执行应用程序/业务级别验证,并将错误消息关联到链接.我无法做到这一点,有任何方法可以将错误消息放在链接之上.
我对业务逻辑的验证是在action方法中
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setSummary("ERROR MESSAGE");
message.setDetail("ERROR MESSAGE");
FacesContext.getCurrentInstance().addMessage("linkId", message);
Run Code Online (Sandbox Code Playgroud)
非常感谢帮助
Bal*_*usC 12
第一个参数FacesContext#addMessage()必须是客户端ID,而不是组件ID.客户端ID是您在生成的HTML输出中看到的HTML元素的ID(正如右键单击页面和浏览器中的View Source所示).对于表单中的JSF输入和命令组件,这通常以表单的ID为前缀.
那么,对于以下链接,
<h:form id="formId">
...
<h:commandLink id="linkId" ... />
<h:message for="linkId" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
您应该按如下方式添加消息:
FacesContext.getCurrentInstance().addMessage("formId:linkId", message);
Run Code Online (Sandbox Code Playgroud)
但是,正如您在操作方法中所做的那样,显示全局消息的规范方法就是使用<h:messages globalOnly="true" />您可以使用null客户端ID 填充的消息.
所以,
<h:form id="formId">
...
<h:commandLink id="linkId" ... />
<h:messages globalOnly="true" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
同
FacesContext.getCurrentInstance().addMessage(null, message);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12050 次 |
| 最近记录: |