で奇妙な問題が発生してい<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>
編集:バッキング 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