Java 如何拥有多个<;h:消息>;在xhtml页面上,显示不同的内容
如何让多个Java 如何拥有多个<;h:消息>;在xhtml页面上,显示不同的内容,java,ajax,validation,jsf,message,Java,Ajax,Validation,Jsf,Message,如何让多个标签显示页面中的不同内容 我正在验证一个inputtext,如下所示: Title: <h:inputText id="input" value="#{insertDocController.docController.documentBean.title}" required="true" requiredMessage="Required!"> <f:ajax execute="@this"
标签显示页面中的不同内容
我正在验证一个inputtext
,如下所示:
Title: <h:inputText id="input"
value="#{insertDocController.docController.documentBean.title}"
required="true" requiredMessage="Required!">
<f:ajax execute="@this" render="message" event="blur" />
</h:inputText>
<h:message for="input" id="message" style="color:red" />
当我测试它时,将inputtext
留空,然后单击submit按钮
,页面在标题inputtext
旁边显示一条红色消息,在提交按钮旁边显示一条黑色消息,但两条消息显示的内容相同:“必需!”
在这个链接上:他们讨论了一个类似的问题,但是来自primefaces的
。他们说解决方案是将属性从
重新显示设置为true<代码>
没有此属性。
中的重新显示是否有类似的属性
解决这个问题的办法是什么
谢谢大家! 您需要将globalOnly=“true”
添加到h:messages中
<h:messages id="submitMessage" globalOnly="true" />
谢谢你的回答。。。我对它进行了测试,但现在它只显示了所需inputtext的验证消息,在我单击submit按钮后,它没有显示确认消息。我发现了链接:该链接讨论了相同的问题,但与。他们谈论使用一个名为redisplay from的属性,但没有。有没有类似的属性好让我直截了当,你应该填写inputText,提交然后你会有成功的消息。如果inputText为空,则表示存在validationError,并且生命周期不会继续调用submit方法。这是预期的bihavour@Luciane事实上,我现在编辑了我的帖子,因为我忘了写inputtext所需消息的事件是模糊的。如果我没有填写输入文本,单击它,然后退出,消息会正常显示。但是,在我单击submit按钮后,另一条消息应该会显示出来,这是一个确认消息,它不会显示。当我只有submit消息时,它正在工作,在我为inputtext添加了所需的消息后,它就停止正常工作了。您可能需要更好地了解JSF生命周期。如果页面中的任何组件未通过验证阶段(这是必填字段,为空时验证失败),则不会调用SUBMIT方法,因此不会将消息添加到上下文中@卢西恩
public void submit() throws IOException {
String fileName = FilenameUtils.getName(uploadedFile.getName());
String contentType = uploadedFile.getContentType();
byte[] bytes = uploadedFile.getBytes();
FacesContext.getCurrentInstance().addMessage("submitMessage",
new FacesMessage(String.format("File '%s' type '%s' successfully " +
"submitted!", fileName, contentType)));
this.docController.submit();
}
<h:messages id="submitMessage" globalOnly="true" />
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(String.format("File '%s' type '%s' successfully " +
"submitted!", fileName, contentType)));