6

我最近将我的 primefaces 项目更新为新版本的 primefaces。

一切似乎都工作正常,但单击“全部添加”按钮时选择列表非常慢。我在列表中有一个巨大的数据集(大约 130 个项目)。此论坛帖子中也描述了该问题。

更新: 一个非常基本的例子应该证明这个问题:

<p:pickList value="#{testForm.dualList}"
            var="id"
            itemLabel="#{id}"
            itemValue="#{id}" />

表格(在会话范围内):

@Component("testForm")
@Scope("session")
public class TestForm implements Serializable {
     private DualListModel<Integer> dualList;
     //getter & setter methods
}

创建 DualListModel 的方法:

prepareForm() {
    List<Integer> source = Lists.newLinkedList();
    List<Integer> target = Lists.newLinkedList();
    //add 100 integers as source:
    for(int i = 0; i <= 99; i++) {
       source.add(i);
    }

    DualListModel<Integer> model = new DualListModel<Integer>(source, target);
    testForm.setDualList(model);
}

有什么我可以做的让它更快吗?

4

2 回答 2

1

这似乎是 primefaces-version 中的一个错误。我在 primefaces 论坛上找到了一些关于这个主题的其他帖子。

我已经实现了自己的选择列表,现在一切正常。

于 2012-08-10T11:00:29.867 回答
0

根据您在此处发布的代码量,我无法告诉您确切的问题。但根据您的意见,我可以建议您以下几点:

  • 检查同一表单内的必填字段不会阻止提交。
  • 不要使用嵌套表单
  • 确保您的 ajax 请求序列(actionListener、action、onclick...等)
  • 确保你的代码写得很好并且有意义。因为有时如果您的代码导致错误,您会注意到 primefaces 组件中的奇怪行为(不触发,不更新)。

希望这可以帮助你。

于 2012-07-11T12:30:00.160 回答