1

JSF1.2を使用しています。サーブレットがあります。このサーブレットがヒットすると、doPostでリクエストパラメータからデータを取得します。xhtmlページに表示できるように、Beanに設定する必要があります。

私のコードは以下のようなものです。

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>

私のフェーズリスナーでは、何もしていません。私はbeforPhaseメソッドを持っています。

jsfページに値を印刷できないのに、ログインBeanに値を印刷できるのはなぜですか?

4

1 に答える 1

1

転送する前に、JSFが期待する場所にBeanをスコープに配置する必要があります。

リクエストスコープのBeanの場合は、を使用しますHttpServletRequest#setAttribute()

request.setAttribute("myBean", myBean);
于 2012-07-20T12:05:22.290 に答える