gpt4 book ai didi

java - 如何让多个 on a xhtml page, 显示不同的内容

转载 作者:行者123 更新时间:2023-11-30 06:21:22 25 4
gpt4 key购买 nike

我怎么能有多个<h:message>在页面中显示不同内容的标签?

我正在验证 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" />

本页面旨在提交一些关于文件的信息。提交每个文件后,我想显示一条确认消息,提交按钮的代码是这样的:

 <h:commandButton id="submit" value="insert" action="#{insertDocController.submit}" />
<h:messages id="submitMessage" />

还有 submitMessagesubmit() 上生成方法:

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();
}

当我测试它时,留下 inputtext清空并单击 submit button , 页面在 inputtext 旁边显示一条红色消息用于标题和提交按钮旁边的黑色,但两者显示相同的内容:“必填!”

在此链接上:How do I use multiple h:messages or p:messages on one page?他们谈论了一个类似的问题,但是 <p:message>来自primefaces。他们说解决方案是设置属性 redisplay来自 <p:message>为真。 <h:message>没有这个属性。 <h:message>有没有属性类似于 <p:message> 的重新显示?

解决方案是什么?

谢谢!

最佳答案

您需要将globalOnly="true" 添加到h:messages

<h:messages id="submitMessage" globalOnly="true" />

并且在创建提交消息时将 clientId 设置为 null

FacesContext.getCurrentInstance().addMessage(null, 
new FacesMessage(String.format("File '%s' type '%s' successfully " +
"submitted!", fileName, contentType)));

关于java - 如何让多个 <h :message> on a xhtml page, 显示不同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com