在JSF中调用两个Bean方法

时间:2013-02-14 12:42:09

标签: jsf-2 primefaces

是否可以在Bean中调用两个方法到一个primefaces组件中的JSF页面?我在Bean中有listOfNames()detailsOfName()个方法。这两种方法返回List种类型。

<p:dataGrid>中,是否可以从这两种方法中获取值?

2 个答案:

答案 0 :(得分:3)

您无法调用多个属性。只需将两个列表合并到一个列表中,然后将其返回。

E.g。

List<String> listOfEverything = new ArrayList<String>();
listOfEverything.addAll(listOfNames);
listOfEverything.addAll(detailsOfName);

请记住you should not be doing business job in getter methods。在bean的(post)构造函数或(action)侦听器方法中执行准备工作,具体取决于您是否需要在GET或POST请求中执行此操作。

答案 1 :(得分:1)

我会按照BalusC提出的方式进行,但也会介绍能够在您的视图或其他地方将两个列表分开(如果需要),从而返回List<List<String>>Map<String, List<String>> ,这是

    List<List<String>> unitedList = new ArrayList<List<String>>();
    unitedList.add(listOfNames);
    unitedList.add(detailsOfName);

    Map<String, List<String>> unitedMap = new HashMap<String, List<String>>();
    unitedMap.put("listOfNames", listOfNames);
    unitedList.add("detailsOfName", detailsOfName);