我在p:outputPanel
<h:form id="someForm">
<p:panel id="panel" header="HEADER">
<h:panelGrid columns="5">
<h:outputLabel value="Name:" for="name" />
<p:inputText id="name" value="#{userBean.name}" required="true"
requiredMessage="ASD" label="name" maxlength="15">
<f:validateLength minimum="10"></f:validateLength>
<p:ajax event="blur" update="inputValidationMessage" />
</p:inputText>
<p:message id="inputValidationMessage" showDetail="true" for="name"
display="icon" />
<p:watermark for="name" value="e.g Jill" />
</h:panelGrid>
<p:commandButton value="Save" update="panel"
actionListener="#{userBean.doSomething}">
</p:commandButton>
</p:panel>
</h:form>
我希望当inputText
元素失去焦点并且其内容的长度小于10个字符时,消息ASD
会显示在它旁边。但是,在验证失败的情况下会发生什么,只显示红叉图标。消息ASD
丢失。将showDetail
更改为showSummary
也无效。
其次,commandButton
调用userBean.doSomething
:
的UserBean#doSomething的:
public void doSomething(ActionEvent actionEvent) {
RequestContext context = RequestContext.getCurrentInstance();
FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_WARN,
"Summary",
"Detail"));
FacesContext.getCurrentInstance().addMessage(null, facesMessage);
context.addCallbackParam("booleanVar", true);
}
未显示FacesMessage。
我在Weblogic 12.1上使用JSF2.0和Primefaces 3.0。
任何帮助表示感谢。
答案 0 :(得分:2)
您已将<p:message>
声明如下:
<p:message ... display="icon" />
以下是来自PrimeFaces User Guide中<p:message>
文档的引用:
显示模式
消息组件有三种不同的显示模式;
- text:仅显示消息文本。
- 图标:仅显示消息严重性,消息文本显示为工具提示。
- both(默认):显示图标和文本。
因此消息严重性显示为图标,消息文本仅显示为图标的工具提示。您需要删除 display="icon"
,以便它在视图中显示。
<p:message ... />