JSF - Managed Bean字段未在PostConstruct中初始化

时间:2014-04-26 11:18:36

标签: java jsp jsf jsf-2

Hellow我正在尝试加载一个jsf页面,具体取决于我从上一页传递的参数。

注意:我正在构建的应用程序不是纯粹的JSF,我使用Jdeveloper来构建一个java ee Web应用程序,其中包括JSF,JSP和servlet。我的网页是.jspx 这是我的代码 第1页:

<a href="page2.jspx?displayText=test"> goto page2 </a>

page2支持bean:

@ManagedProperty(value= "#{param.displayText}")
private String displayText;
private HtmlOutputText outputText;

@PostConstruct
public void testMethod(){
 getOutputText().setValue(displayText);
}

但我得到以下例外:

java.lang.NullPointerException
at view.backing.page2.testMethod(Results_page.java:24)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
.
    .

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

我认为你正在尝试使用你的bean作为支持bean,我想你在jspx <h:outputText binding="#{myBean.outputText}" />中有这个标记,你需要始终实例化容器没有的这个变量为这个组件注入任何实例,你可以在使用它之前从构造函数或postconstruct方法初始化。

@PostConstruct
public void testMethod(){
   outputText = new HtmlOutputText();
   getOutputText().setValue(displayText);
}