在JSF中显示1-n关系

时间:2009-06-29 13:44:43

标签: jsf

我想在我的页面上放一张桌子。我的数据库中有两个表,例如用户和位置。每个位置都有多个用户。我想列出这些位置并显示居住在这些位置的用户。


洛杉矶

  1. John Locke
  2. 博士。千斤顶
  3. 先生。生态
  4. 如下图所示,有人可以在JSF中执行此操作吗?

    感谢。

1 个答案:

答案 0 :(得分:1)

你可以使用RichFaces来做这件事:

<h:form>
<rich:dataList var="city" value="#{myBean.allCity}">
    <h:outputText value="#{city.name}" ></h:outputText>
    <rich:dataList var="user" value="#{city.users}">
         <h:outputText value="#{user.name}" ></h:outputText>
    </rich:dataList>
</rich:dataList>
</h:form>

allCity - 城市列表,每个城市都有用户名单。

例如,请参阅http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataList&tab=usage

支持bean:

<强>为myBean:

public class MyBean(){
   private ArrayList<City> allCity= new ArrayList<City>();

   @PostConstruct
   public void init(){
     //fill Array list
   }

    public ArrayList<City> getAllCity() {
     return allCity;
    }      

}

<强>城市:

public class City{
   private ArrayList<User> users= new ArrayList<User>();

   public City( ArrayList<User> users){
     this.users = users;
     // you can get data from database in myBean, and pass it hear with cinstructor;
   }

   public ArrayList<User> getUsers() {
     return allCity;
   }     
}

用户

public class User{
  private String name;

  //constructor and others fields;

  public String getName(){
     return name;
  }
}

只有您注册为支持bean的MyBean。我只向您展示类的基础结构,如何用数据填充它是您的选择。