2012-07-30 66 views
0

我試圖將表單字段值作爲2個視圖(稱爲「A」和「B」)之間的GET參數傳遞。 在「B」中,我使用f:metadata和f:viewParam處理參數。如果我直接使用URL,這部分工作得很好。在JSF2中使用GET參數

但是,現在我想從另一個角度「A」傳遞字段,但毫無成效。中的字段定義如下:

<h:form> 
<p:inputText id="field1" value="#{A.field1}"/> 
<p:inputText id="field2" value="#{A.field2}"/> 
[...] 
</h:form> 

如果我使用f:一個Primefaces p範圍內的PARAM:按鈕,這些參數被髮送,但不動態檢索(事實上,如果我檢查網頁的HTML代碼,最初的表單的值被寫爲「靜態」)。

處理這個問題的最佳方法是什麼?

在此先感謝

回答

0

使用h:buttonf:param:在點擊

<h:button outcome="B.xhtml" value="Click me!"> 
    <f:param name="maybe_an_id" value="3" /> 
</h:button> 

,這將產生一個普通的HTML按鈕,通過一段JavaScript這樣的:

<input type="button" value="Click me!" 
    onclick="window.location.href='/path/to/B.xhtml?maybe_an_id=3'; return false;"> 

參見:When should I use h:outputLink instead of h:commandLink?

+0

感謝您的回覆。使用「靜態」參數一切正常,但我想有類似於' user1563703 2012-07-30 20:04:35

+0

EL也有效,所以你可以使用類似'#{param.field1}'的東西。查看[EL隱式對象](http://developers.sun.com/docs/jscreator/help/2update1/jsp-jsfel/jsf_expression_language_intro.html#implicitobjects)。 – elias 2012-07-30 21:34:17

+0

問題是隻發送表單的「初始」值。如果我修改字段,則不會發送更改。我猜有一些技巧要做,因爲表單使用POST方法(可能是POST/Redirect/GET),但我不知道該怎麼做。 – user1563703 2012-07-30 21:40:52