2012-03-20 18 views
0

私はpage1.xhtmlページにinputtextを持っています。ユーザーがgetメソッドを使用してviewパラメータとして2番目のページpage2.xhmtlに入力する値を渡したいとします。 h:ボタンを使用してバッキングBeanから結果値を入力しますが、2番目のページに移動するとパラメータが渡されません。どうしましたか?ボタンを押す前に値がバッキングBeanに渡されないため、値を読み取ることができませんか?それを行う別の方法がありますか?バッキングビーンを介してビューパラメータを渡す

page1.xhtml

h:inputText id="q" value="#{QBean.q}"></h:inputText> 
<h:button value="Done" outcome="page2?q=#{indexBean.q}"> 

page2.xhtml

<f:metadata> 
     <f:viewParam name="q" value="#{QBean.q}"/> 
</f:metadata> 

QBean

private String q; 

//setter 
//getter 

答えて

2

あなたの唯一の機能要件は、あなたの代わりにPOSTフォームのGETの形をしたいということのようです。その場合は、JSFコンポーネントではなく、通常のHTML要素を使用してください。

<form action="page2.xhtml"> 
    <input name="q" /> 
    <input type="submit" value="Done" /> 
</form> 
+0

を私もバッキングBeanにそのパラメータを渡したい場合はどう? – user579674

+0

すでに行ったように、 'page2.xhtml'に' 'と指定してください。そこに変更を加える必要はありません。 – BalusC

+0

本当にありがとう、本当にうまくいきました..もし私がjsfを使いたいのであれば、それはできますか?私は自分のコードに何が間違っているのか理解してもらい、それはうまくいきませんでした。 – user579674

0

あなたはPOST-REDIRECT-GET approachを使用し、代わりにコマンドボタンを取ることができる:<h:commandButton value="Done" action="page2?faces-redirect=true&amp;includeViewParams=true"/>

+0

は[this one](http://stackoverflow.com/questions/4823216/jsf-2-0-form-using-get)の複製と思われる – fischermatte

+0

これは興味深いようです。これを使用して、私が理解できるように、あるページから別のページにすべてのビューパラメータを渡すことができます。これは私が現在持っている問題のために動作するかどうかは分かりません。 – user579674

関連する問題