【发布时间】:2014-01-01 03:49:21
【问题描述】:
我对如何在对话框中显示 facescontext 消息有疑问。 这使用 primefaces 4.0,JSF。
我想在弹出对话框中显示一个 facescontext 消息(在单击另一个对话框中的命令按钮时出现)。
方法一: 假设视图文件是这样的
<p:commandButton id=”btn” oncomplete=”dlg.show()”/>
<p:dialod id=”dlg_id” widgetVar=”dlg”>
<h:inputText id=”name”/>
<p:commandButton id=”btn1” actionListener=”someBean.someMethod()” oncomplete=”dlg1.show()”/>
</p:dialog>
<p:dialog id=”dlg1_id” widgetVar=”dlg1”>
<h:messages id=”error_msgs” value=”#{facesContext.messageList}”
</p:dialog>
BackingBean (someBean)
public void someMethod() {
RequestContext.getCurrentInstance().addCallBackParam(“facesMessageAvailable”,true);
FacesContext.getCurrentInstance().addMessage(“error_msgs”,new FacesMessage(…,”Name is Required”,…));
}
上述方法显示弹出框。但是弹出框中显示的值就像 javax.beans.context@1ggh34ea 然后我尝试使用 UI 组件绑定。
方法二:
查看文件
<p:commandButton id=”btn” oncomplete=”dlg.show()”/>
<p:dialog id=”dlg_id” widgetVar=”dlg”>
<h:inputText id=”name”/>
<p:commandButton id=”btn1” actionListener=”someBean.someMethod()” oncomplete=”dlg1.show()”/>
</p:dialog>
<p:dialog id=”dlg1_id” widgetVar=”dlg1”>
<h:outputText id=”msg” binding=”someBean.outText”/>
</p:dialog>
BackingBean (someBean)
private UIComponent outText;
//getter and setter of outText
public void someMethod() {
RequestContext.getCurrentInstance().addCallBackParam(“facesMessageAvailable”,true);
FacesContext.getCurrentInstance().addMessage(outText.getClientId() , new FacesMessage(…,”Name is Required”,…));
}
但这显示了一个空白的空弹出窗口。 然后我尝试使用 JOptionPane。但它会产生一些逻辑错误。
如果有任何帮助,我将不胜感激。 语法可能不正确,因为我是从记忆中键入代码的。
【问题讨论】:
标签: java jsf primefaces