Java获取ManagedBean实例的名称

时间:2011-05-18 10:14:25

标签: jsf

如何在JSF中获取其范围是请求的托管bean的实例?

2 个答案:

答案 0 :(得分:2)

对于jsf 1.2我在代码中使用下一个表达式:

    MyBean identifier =  (MyBean) context.getApplication().getELResolver().getValue(context.getELContext(), null, "myRequiredBean");

其中“myRequiredBean” - faces-config.xml中的bean defenition

答案 1 :(得分:1)

如果您未在@ManagedBean(name = "name")注释name属性中指定特定名称,则该名称默认为类名称,其首字母小写。如果您使用JSF< 2.0,同样的事情,但它使用xml而不是注释。

您可以从该托管bean获取所需内容,然后使用EL,JSF中的EL为#{beanName.field}。 如果使用EL 2.2+,您可以使用#{beanName.method('param')}调用方法。

此外,对于未来 - 您确实应该指定运行它的JSF版本和容器。