2012-05-11 15 views
1

URLにパラメータ名 "ONum"で渡されたパラメータを取得し、その値をorderNumフィールドに入力する必要があります。その前にjsfのテキスト入力フィールドにgetParameter値を設定しますか?

<h:panelGroup> 
<h:inputText id="orderNum" value="#{LoginBean.orderNum}" size="18" maxlength="17" tabindex="1" title="Order Number" disabled="#{LoginBean.disableField}"/> 
</h:panelGroup> 

、私は#{LoginBean.orderNumは} ONumからパラメータの内容を取得し、orderNumのテキスト入力フィールドに表示、値を返さないかどうかを確認する必要があります。 値を返すと、これを無視します。 これを手伝ってください。

答えて

0

リクエストからパラメータ値を直接読み込み、Beanに入力してください。

@SessionScoped 
public class LoginBean { 

    private String orderNum; 

    public String getOrderNum() { 
     if (getRequestParameter("onum") != null) { 
      orderNum = getRequestParameter("onum"); 
     } 
     return orderNum; 
    }  

    private String getRequestParameter(String name) { 
     return ((HttpServletRequest)FacesContext.currentInstance().getExternalContext().getRequest()).getParameter(name); 
    } 
    // ... 

これで十分です。

+0

良いですが、私はgetRequest()メソッドのgetParameter()メソッドを取得していません。 orderNum = FacesContext.getCurrentInstance()。getExternalContext()。getRequest()。??? –

+0

'HttpServletRequest'にキャストします。 –

+0

は正常に動作してくれてありがとうございます。しかし、別のONumクエリーストリング値でページをリロードしようとすると、更新されません。私はLoginBeanスコープがSessionスコープであることを期待しています。これを克服する方法はありますか?私はどのようなクエリ文字列でもページの各リロード上に更新されたテキストフィールドが必要です。 –

関連する問題