2012-03-20 65 views
0

我在頁面page1.xhtml中有一個輸入文本,我想通過get方法將用戶輸入的值作爲視圖參數傳入第二個頁面page2.xhmtl。我使用h:按鈕並將其作爲支持bean的結果值,但是當我導航到第二頁時,該參數未傳遞。怎麼了?在按下按鈕之前,該值是否傳遞給後臺bean,因此無法讀取值?還有另一種方法可以做到嗎?通過支持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

你唯一的功能需求似乎是你想要一個GET形式,而不是一個POST形式。在這種情況下,請使用普通的HTML元素,而不是JSF組件。

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

如果我想這個參數也傳遞到後臺bean是什麼? – user579674 2012-03-29 10:19:02

+0

就像你已經做過的那樣在'page2.xhtml'中將它指定爲''。在那裏不需要做任何改變。 – BalusC 2012-03-29 12:14:54

+0

好的,非常感謝,確實有效。所以如果我想使用jsf,我可以做到這一點嗎?我要求瞭解我的代碼出了什麼問題,但它不起作用。 – user579674 2012-03-29 15:29:16

0

您可以使用POST-REDIRECT-GET approach,採取的commandButton來代替:<h:commandButton value="Done" action="page2?faces-redirect=true&amp;includeViewParams=true"/>

+0

似乎是[這一個]的副本(http://stackoverflow.com/questions/4823216/jsf-2-0-form-using-get) – fischermatte 2012-03-20 19:21:47

+0

這似乎很有趣。據我所知,我可以將所有視圖參數從一個頁面傳遞到另一個頁面。我不知道這是否能解決我目前遇到的問題。 – user579674 2012-03-29 10:23:56