如何发送要在辅助bean的@PostConstruct方法中使用的参数?

时间:2011-01-12 20:45:02

标签: jsf

我需要预加载页面加载时要显示的一些数据。初始化步骤是在@ PostConstruct-annotated方法上执行的,但现在我需要使用参数来获取数据。

我正在尝试做什么:

@PostConstruct
public void init()
{
   List data = getDataFromDB(parameter) /*Need to read a parameter created somewhere else*/
}

有没有办法实现这个目标?

提前致谢

2 个答案:

答案 0 :(得分:1)

很难用“其他地方的参数集”来表达你的意思。我将假设“其他地方”的意思是“通过HTTP从浏览器发送”。在这种情况下,您应该在托管bean中创建一个标准属性:

  • 在JSF 2.0中,您可以使用@ManagedProperty(“#{param.nameOfParameterToRead}”)
  • 对其进行注释
  • 在JSF 1.2及更低版本中 - 在bean描述中使用managed-property元素(faces-config.xml)。

像这样:


    @ManagedBean
    @RequestScoped
    class MyManagedBean {

   @ManagedProperty("#{param.id}")
   public Integer id;

   @PostConstruct
   public void init(){
     data = getDataFromDB(id)
   }



// setters and getters (mandatory, even though annotation is on an attribute!!!)


}

注意:注入属性不使用JSF转换器,因此最好在自己的代码中注入字符串并进行转换。

答案 1 :(得分:0)

如何从Properties文件中读取,或从DB中获取List