2011-07-09 39 views
0

在JSF2如果我们有像调用方法和功能

public String greeting(String gtr) { 
     return "Hello " + gtr; 
} 

那么一些功能从JSF页面,我们可以调用这个函数作为

<h:outputLabel value="#{greetingBean.greeting['some-name']}" 

现在我的问题是我想通过动态参数从相同的bean类而不是'some-name'类似value="#{greetingBean.greeting[greetingBean.name]}这有可能吗?

我需要这个,因为我在Map<String, ArrayList>有价值,并且想要编辑特定的ArrayList值?

有什么建议吗?

+0

您是否尝试过? – bluefoot

+0

我试了一下,并给出错误,所以想知道是否有任何解决方法 – dinsim

+0

您使用的是什么版本的EL? – bluefoot

回答

2

括号用于替换点符号。也就是说,

#{greetingBean.greeting['some-name']} 

相同

#{greetingBean.greeting.some-name} 

所以,greeting方法不会被调用。相反,JSF将尝试访问greeting属性,然后尝试访问由greeting属性返回的对象的some-name属性。也就是说,你上面的代码已经产生了一个错误。

如果您使用的EL 2.2和要调用一个动作,简单地说:

#{greetingBean.greeting('some-name')} 

#{greetingBean.greetingThatReceivesAMap(greetingBean.name)}