2011-03-07 47 views
0

<h:inputText>值未在請求作用域bean中設置。如果從數據庫中保存該值,則工作正常。h:未在bean中設置inputText值

觀點:

<h:inputText id="receipient" size="90" styleClass="text" readonly="#{!bean.enable}" value="#{bean.recipient}" /> 

豆:

public class Bean { 
    private String recipient; 
    Bean(){ 
     recipient = //load from db 
    } 
    //set 
    //get 
} 

這是什麼問題?如何解決這個問題?

回答

0

確保readonly="#{!bean.enable}"的計算結果與初始視圖中的相同。如果它在表單提交的申請請求值階段期間評估true,則組件的值將不會被處理(因爲它被標記爲只讀)。

一個簡單的測試是將bean放入會話範圍。如果修復它,那麼你知道罪魁禍首。如果您使用的是JSF 2.0,只需使用@ViewScoped而不是@RequestScoped即可將bean放入視圖範圍。如果您仍然使用JSF 1.x,請使用Tomahawk's <t:saveState>組件讓bean像JSF 2.0視圖一樣工作。

<t:saveState value="#{bean}" /> 
+0

Hi Balu, 謝謝你的回覆。 請用saveState舉例說明一個文本字段? – venkat

+0

只需引用您希望在後續請求中保留的值。 '' – BalusC

相關問題