Primefaces 选择列表 dualList 对象变为空

标签 primefaces jsf-2 picklist

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;

列表加载正确,我能够一边管理对象一边另一边。 enter image description here

直到这一部分,一切看起来都不错。源对象和目标对象加载成功,并且选择列表起作用。创建 dualList 后,我​​立即列出了 sourcetarget 的内容,它们都在那里。

下方有一个按钮,用于保存通过调用 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());
    }

Now both, .target() and .souce() are empty. There are zero object in there. enter image description here

阅读 Primefaces 文档,它说需要转换器来处理您自己的类型。由于我使用的是普通字符串列表,它是 pickList 组件的 native 对象,所以我没有费心构建转换器类。

我做错了什么?

最好的问候, 尼奥沙姆

最佳答案

代码没有问题。该问题与范围有关。

pickList 正在模态对话框窗口 中使用,不知何故这并没有反射(reflect)对 dualList 组件的更改。

我已经从对话框窗口中删除了组件并添加到 <h:panelGroup>仅在需要时使用 rendered=#{booleanCondition} 呈现.

我无法准确解释使用模态对话框窗口时有哪些限制,但它阻止了组件更新变量。

希望这对面临同样问题的其他人有所帮助!

关于Primefaces 选择列表 dualList 对象变为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42596545/

相关文章:

javascript - 结合 Primefaces 密码验证 : <p:password> and show/hide text/password icon together

jsf - 使用 PrimeFaces TabView 时使选项卡垂直显示在侧面

ajax - 如何使用 h :command ajax in jsf2? 刷新表单外的元素

jsf-2 - 如何从 Facelets 页面中的 JSP 页面获取请求参数?

java - 嵌套 JSF 表达式字符串

jquery picklist : once deselect an item, 无法再选择

java - cellEditor 中的 commandLink 不会触发 action/actionListener

jsf-2 - JSF 中的手动 Ajax

jsf - 如何为<p:pickList>编写自定义转换器