2013-02-14 129 views
0

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

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

+0

我无法udnerstand你的问题。 “在”什么? “到一个JSF页面” - 调用哪些方法? – Dariusz 2013-02-14 13:04:33

+0

@Dariusz:点击*编辑*来查看它。 OP忽略了注意并喜欢格式化规则和问题预览。我修好了它。 – BalusC 2013-02-14 13:11:24

回答

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。根据在GET或POST请求中是否需要此操作,在bean的(后)构造函数或(操作)侦听器方法中执行准备工作。

+0

谢谢你的回答。 (我会照顾到更好的短语我的问题,再次感谢!) – sciFi 2013-02-15 06:49:21

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); 
+0

他想显示在一个''。无可否认,可能会有更优雅的方式,'DetailsOfName'可能更适合'Name'的属性,但是ala,OP提出这样的问题,并且最重要的是你必须事先做好准备,以便一个结果可以被退回:) – BalusC 2013-02-14 13:10:37

+0

我认为这是一个设计不佳的问题(和一个例子)。他的bean应该包含带'.name'和'.detail'字段的对象列表。 – skuntsel 2013-02-14 13:18:25