ber*_*tie 5 jsf message action jsf-2
我目前正在从核心jsf 2.0 book + glassfish + cdi学习jsf 2.0.
我想问一个关于使用bean-validation-framework处理未在jsf页面或托管/命名bean中定义的验证的问题.我脑子里有这些层次:
我想象层1.5(jsf bean)初始化和调用第2层(业务逻辑对象),在调用业务方法时提供参数,获取结果,将结果填充到jsf bean属性中,以便ui可以正确呈现.
令人好奇的是,第2层(业务逻辑对象)可以对提供的参数进行验证,或者验证数据等,并且可能抛出异常或错误对象.
我想我可以处理异常并获取层1.5(jsf托管bean)中的错误对象,但是我应该如何在呈现的页面中显示错误?我似乎无法从我正在阅读的书中找到它,但我希望有一种方法来创建一个全局错误消息,并以某种方式可以将它注入某个地方,以便它由标记呈现?
谢谢 !
Bal*_*usC 26
您可以使用FacesContext#addMessage()以FacesMessage编程方式将上下文添加到上下文中.
FacesContext facesContext = FacesContext.getCurrentInstance();
FacesMessage facesMessage = new FacesMessage("This is a message");
facesContext.addMessage(null, facesMessage);
Run Code Online (Sandbox Code Playgroud)
使用设置客户端ID参数时null,它将成为全局消息.您可以使用显示和过滤它们<h:messages />
<h:messages globalOnly="true" />
Run Code Online (Sandbox Code Playgroud)
在globalOnly="true"将仅显示与消息null客户端ID.
但是,您也可以指定特定的客户端ID.
facesContext.addMessage("formid:inputid", facesMessage);
Run Code Online (Sandbox Code Playgroud)
然后这个将结束
<h:form id="formid">
<h:inputText id="inputid" />
<h:message for="inputid" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22975 次 |
| 最近记录: |