JSF 1.2:无法在xhtml页面中检索bean值

时间:2012-07-20 12:00:07

标签: jsf-1.2

使用的是JSF 1.2。我有一个servlet。当这个servlet被命中时,我在doPost中从请求参数中获取数据,我需要在bean中设置它,以便我可以在xhtml页面上显示它。

我的代码如下所示。

userId= request.getParameter("userID");
MyBean myBean = new MyBean();
myBean.initialize(userId);

在myBean的initialize方法中,我将userId值设置为globalVariable。

在我的bean日志中,将打印globalVariable值。但它没有显示在xhtml页面上。

在doPost方法中重定向到xhtml页面,如下所示,

RequestDispatcher dispatcher = request.getRequestDispatcher("/jsp/html/index.jsf");
dispatcher.forward(request, response);

在index.xhtml页面中,我有

<h:outputText value="#{myBean.globalVariable}"></h:outputText>

在我的phaselistener中我没有做任何事情。我只是有beforPhase方法。

为什么我无法在jsf页面中打印该值但能够在登录bean中打印该值?

1 个答案:

答案 0 :(得分:1)

在转发之前,您需要将bean放在范围内,正好是JSF期望的范围。

如果它是请求范围的bean,请使用HttpServletRequest#setAttribute()

request.setAttribute("myBean", myBean);