当对象加载时,pickList dualList 对象变为空。
这是选择列表定义
<p:pickList id="queuesPickList"
value="#{manageApplications.dualListQueuesToBeAddedToTheApplication}"
var="queueToAdd" itemLabel="#{queueToAdd}" itemValue="#{queueToAdd}">
</p:pickList>
正在使用的 dualList 对象由两个字符串列表组成
private List<String> queuesSouce = new ArrayList<>();
private List<String> queuesTarget = new ArrayList<>();
private DualListModel<String> dualListQueuesToBeAddedToTheApplication;
直到这部分一切看起来都很好。源对象和目标对象加载成功,并且选择列表正常工作。创建 dualList 后,我立即列出源和目标的内容,两者都在那里。
下面有一个按钮可以保存通过调用 actionListener 所做的更改。
<p:commandButton value="SAVE" id="saveQueuesButton"
actionListener="#{manageApplications.saveQueuesToTheApplication()}"
oncomplete="PF('dlgAddQueuesToApplication').hide();"
update="addQueuesToApplicationPanel">
</p:commandButton>
actionListener 现在只是打印来自 dualList 对象的值。
public void saveQueuesToTheApplication() {
System.out.println(this.dualListQueuesToBeAddedToTheApplication.getTarget());
}
阅读 Primefaces 文档,它说需要转换器来处理您自己的类型。因为我使用的是普通的字符串列表,它是 pickList 组件的本机对象,所以我没有费心构建转换器类。
我究竟做错了什么?
最好的问候, Neliosam