<p:pickList> 在"全部删除"按钮后未清除



我遇到一个奇怪的问题与<p:pickList>。当我打开一个带有此pickList的对话框并使用RemoveAll按钮从目标列表中清除所有项目并使用<p:commandButton>提交时,目标列表中的旧项目仍然出现。我已经给了属性required=true的pickList。奇怪的行为是,当我提交它时,出现一个工具提示,说该字段是强制性的。

因此,如果项目正在清除并且required属性工作正常,为什么旧项目重新出现?这个问题的解决方法是什么?

<p:pickList id="selectedId" value="#{someDialog.selectedItem}"
            var="item" itemValue="#{item}" required="true"
            converter="pickListConverter" requiredMessage="#{msg.required_message}" 
            styleClass="#{component.valid ? '': 'ui-state-error'}">
        </p:pickList>

编辑: Backing Bean -我只发布相关方法。 SomeDialog.java

 private DualListModel<Item> selectedItem = new DualListModel<Item>();
 //Its getters and setters
public final void afterSave(final ParamObject pObject) {
        pObject.getRelevantData().clear();
        pObject.getRelevantData().addAll(selectedItem.getTarget());
    }

ParamObject . java

private List<Item> relevantData = new ArrayList<Item>();
//Setters and Getters

正如@Xtreme Biker提到的,它在你的后台bean中。

当您第一次提交列表时,您在后台bean中设置了它。当你第二次打开对话框时,它已经在那里了。即使您按下RemoveAll,它也只能在您的浏览器中删除,它不能与backing bean一起工作。您的提交将无法工作,因为您设置了required=true.

所以你可以选择以下选项之一:

  1. remove required=true,每次提交后,你需要按RemoveAll并再次提交空列表(它不是一个选项)。
  2. 在后台bean中完成所有需要的任务后,清除someDialog。选择项值,更新和关闭对话框。每次打开对话框清除一些对话框。

我希望它能帮助我,因为我也是新来的。

相关内容

  • 没有找到相关文章

最新更新