java - 为什么 Set 在 webflow 和 Primefaces 中不起作用

标签 java jsf primefaces spring-webflow

我在流程中调用了一个返回 PersonHashSet 的方法。然后我使用 Primeface-dataTable 在我的 xhtml 文件中调用 Set。现在我想显示此人的名字,但出现错误,说他没有找到“名字”...

然后我将 HashSet 放入 ArrayList 并执行相同操作。而且......它工作正常!但是为什么?
Set 和 List 用作 Superinterfaces Collection & Iterable。那么为什么这不适用于 Set?

以下是部分文件:

flow.xml

<view-state id="rcpm" view="rc/rcmembers.xhtml">
    <on-entry>
        <evaluate expression="RCHtmlCache.getCommunityList('rcpm')"
            result="flowScope.members" />
    </on-entry>
</view-state>

rcmembers.xhtml

<p:dataTable id="table1" var="member" value="#{members}"
                                sortMode="multiple" rowIndexVar="status"
                                emptyMessage="The Community is empty.">
<p:column>
    <f:facet name="header">
         <h:outputText value="Vorname" />
   </f:facet>

   <h:outputText value="#{member.vorname}" />

</p:column>

RCHtmlCache.java 设置版本

public Set<Person> getCommunity(String key) {
        return htmlCache.get(key);
    }

RCHtmlCache.java 列表版本

public List<Person> getCommunityList(String key) {
    Set<Person> comList = htmlCache.get(key);
    ArrayList<Person> result = new ArrayList<Person>();
    for (Person person : comList) {
        result.add(person);
    }
    return result;
}

希望你能给我解释一下这个奇怪的事件......

最佳答案

这只是一个提示,但我认为 PrimeFaces 只接受 List 接口(interface),因此你不能使用 Set 接口(interface),它们是不一样的。

您可以使用适配器模式创建自己的 List + Set 适配器类。它可能非常适合您的问题,因为您希望将 Set 接口(interface)调整为 List 接口(interface)。如果您这样做,那么您将不需要每次都将您的 Set 转换为 List。

看看这个:http://en.wikipedia.org/wiki/Adapter_pattern

希望我能帮上忙。

关于java - 为什么 Set 在 webflow 和 Primefaces 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15204629/

相关文章:

java - 如何在 Java 中检查文件权限(独立于操作系统)

java - JSF/Seam - 提交新组件实例?

java - 不需要的自动填充

css - RTL 中的 PrimeFaces 菜单项

javascript - Primefaces 以编程方式触发的事件触发两次

Java TelnetClient 在 “press any key to continue” 挂起

java - CXF生成Java Bean Skeleton不制作setter和操作类

java - 在 Spring 中存储 bean 实例

jsf - JSF 2.2 所需的最低 Tomcat 版本

java - 数据映射器模式的数据一致性