gpt4 book ai didi

java - 从 p :selectCheckboxMenu with a primefaces ajax event "change"? 取消选择最后一个选定项目时如何更新支持 bean

转载 作者:行者123 更新时间:2023-12-01 08:58:02 24 4
gpt4 key购买 nike

我的xhtml文件中有一个primefaces“selectCheckboxMenu”,当ajax事件“change”被触发时我需要更新它,从我的选中列表中选择和取消选择项目时它工作正常,唯一的问题是事件每当我取消选择上述列表中最后一个也是唯一一个选定的项目时,似乎就会迷失方向。似乎有一些代码正在前端(HTML、JavaScript)中执行,但它没有到达我的调试控制台中的托管 Bean。有人可以帮助让此事件发挥作用,以便我可以看到托管 Bean 中的更改吗?

<h:panelGroup>
<h:outputLabel for="myDocs" value="#{msg['documentation']}" />
<p:selectCheckboxMenu id="myDocs" value="#{documentMB.selectedDocs}" label="#{msg['select']}" showHeader="false" required="true" requiredMessage="#{msg['message']}" updateLabel="true" >
<f:selectItems value="#{documentMB.availableDocs}" var="doc" itemLabel="#{doc.name}" itemValue="#{doc.id}" />
<p:ajax event="change" update="contentMessage" listener="#{documentMB.changeContent()}" />
</p:selectCheckboxMenu>
<p:message for="myDocs" ></p:message>
</h:panelGroup>

我的托管 Bean:

@ManagedBean
@ViewScoped
public class DocumentMB {
List<Documents> selectedDocs;
List<Docuemnts> availableDocs;
@PostConstruct
public void init() {
//all initializations
}
//getters and setters
}

最佳答案

如果你输入 <p:growl autoUpdate="true"/>在那里你会看到requiredMessage当您删除最后一张支票时会显示。因此,逻辑是验证失败将阻止监听器运行(同样的情况也发生在 commandButtons 和 -Links 上)。

我不确定是否有更好的方法,但我会删除 required="true"并在提交整个表单时手动执行此验证。如果它不是更大表单的一部分,我只会向用户显示当前消息(更新 p:message )。

关于java - 从 p :selectCheckboxMenu with a primefaces ajax event "change"? 取消选择最后一个选定项目时如何更新支持 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41901972/

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