调用方法和函数

时间:2011-07-09 12:31:26

标签: jsf-2

如果我们有一些像

这样的函数,请在jsf2中

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

然后从jsf页面我们可以将此函数称为

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

现在我的问题是我想从同一个bean类中传递动态参数而不是像value="#{greetingBean.greeting[greetingBean.name]}这样的'some-name'吗?

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

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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

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

相同
#{greetingBean.greeting.some-name}

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

如果您正在使用EL 2.2并想要调用某个操作,只需输入:

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

#{greetingBean.greetingThatReceivesAMap(greetingBean.name)}