Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 如何在p:对话框关闭时清除p:选取列表目标列表_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 如何在p:对话框关闭时清除p:选取列表目标列表

Jsf 2 如何在p:对话框关闭时清除p:选取列表目标列表,jsf-2,primefaces,Jsf 2,Primefaces,我在p:dialog中有一个p:pickList <p:dialog id="registerDialog" widgetVar="registerServiceDlg" modal="true" minimizable="false" draggable="false" position="300,40" style="background:#E0E0E0;" closable="true" maximizable="false" resizable="f

我在
p:dialog
中有一个
p:pickList

<p:dialog id="registerDialog" widgetVar="registerServiceDlg" modal="true" 
    minimizable="false" draggable="false" position="300,40" 
    style="background:#E0E0E0;" closable="true"  maximizable="false" 
    resizable="false"  visible="#{not empty facesContext.maximumSeverity}">

    <p:ajax event="close" update="registerDialog" />
    <h:outputLabel value="User" styleClass="label"/>
    <p:pickList id="contactBean" value="#{contactBean.contacts}" var="contact" 
        itemLabel="#{contact}" itemValue="#{contact}" style="margin-left:20px;" 
        required="true" requiredMessage="one user is needed"/>
</p:dialog>


对话框关闭时,我想清除
p:pickList
目标列表。我怎样才能做到这一点?bean在会话范围内,我希望将其保留在会话范围内。

@PostConstruct
方法上再次绑定目标列表

contacts.setTarget(new ArrayList<String>());
contacts.setTarget(新的ArrayList());

祝你好运

您可以将picklist的value属性绑定到其他对象,以便在不干扰会话的情况下清除它,也可以清除会话范围bean中的列表,以便更新这些值。此外,您的
标签中需要一个监听器,以使其在关闭时完成其工作。如果您在问题中添加了功能要求和一般设置(会话中是什么,选择列表中是什么,等等),这也会很好。您的具体问题是什么?在相应地实现需求的过程中,您到底在哪一步步履蹒跚?您知道通过
调用bean方法的可能性吗?您的答案很模糊。要么发表评论,要么扩大你的解释。我的回答中有什么含糊不清的地方?我想这很清楚。在postconstruct方法中,需要使用picklist的targetList setter方法绑定targetList。OP明确说明“关闭对话框时,我要清除picklist”。它与bean实例化有什么关系?还要记住,“bean在会话范围内”,并且它已经被实例化了。必须做的是,通过调用您建议的方法,将一个密切的侦听器附加到对话框中,如
,并使用适当的方法清除OP想要的数据。