java - 如何在jsf中显示多对多的jpa集合?

标签 java jsf jpa

我在用户和组表之间创建了多对多连接表。 所以我在每个实体(用户和组)中有一个集合

@ManyToMany(mappedBy = "usersCollection")
    private Collection<Groups> groupsCollection;

我想在 Jsf 中显示组集合,这就是我所做的:

<p:dataTable var="user" value="#{usergestion.tableusers}">  
                           <p:column headerText="username">  
                               <h:outputText value="#{user.username}" />  
                           </p:column>  

                           <p:column headerText="nom">  
                               <h:outputText value="#{user.nom}" />  
                           </p:column>  

                           <p:column headerText="prenom">  
                               <h:outputText value="#{user.prenom}" />  
                           </p:column>

                            <p:column headerText="groupe"> 

                                <h:outputText value="#{user.groupsCollection.get(0)}"  />

                           </p:column>

我得到的是: enter image description here

我如何才能获得名称而不是 com.database.Groups[ idGroups=2 ] ???

解决方案:

我用过:<h:outputText value="#{user.groupsCollection.get(0).groupname}" />

最佳答案

您通常使用迭代组件,例如 <ui:repeat><h:dataTable>迭代集合。您可以将它完美地嵌套在另一个迭代组件中。

例如

<p:column headerText="groupe"> 
    <ui:repeat value="#{user.groupsCollection}" var="groups">
        <h:outputText value="#{groups.groupname}" /><br/>
    </ui:repeat>
</p:column>

与具体问题无关,您有一些糟糕的命名约定。一个组应该由名为 Group 的类来表示,不是Groups 。我建议重命名其中一个和另一个,以便代码变得更加 self 记录:

<p:column headerText="groups"> 
    <ui:repeat value="#{user.groups}" var="group">
        <h:outputText value="#{group.name}" /><br/>
    </ui:repeat>
</p:column>

复数 s字段/变量名称中的 应该已经表明它涉及一个集合。

关于java - 如何在jsf中显示多对多的jpa集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16417247/

相关文章:

java - 如何让多个 <h :message> on a xhtml page, 显示不同的内容

java - 如何在jpa中设置和获取复合主键和其他字段的值?

Java将 double 型转换为日期格式

java - 无法理解为什么 arraylist 的 Element 方法在 java 中不起作用

java - 有哪些好的二进制数据压缩 Java 库?

java - mapstruct 中的映射循环问题

java - 无法再次访问托管 bean...jsf

java - JSF 下载并转发到结果页面

java - JPA criteria API 将 'in' 表达式转换为多个 'OR'

java - Hibernate 3 到 4 迁移