我無法弄清楚我在做什麼錯誤。請求你的輸入。請。在渲染響應階段未渲染託管Bean屬性值
我有一個請求作用域管理bean,它有一個List,我在我的JSF 1.2 Apache我的faces應用程序中作爲一個數據表進行渲染。當我提交表單時,由於有一些服務器端驗證失敗,我添加一個FacesMessage並顯示相同的JSF頁面。
在這個請求響應循環中,在INVOKE-APPLICATION階段,我能夠看到List的值,但是當頁面用FacesMessage呈現時,數據表是空的。
其他bean屬性及其值保留在此請求響應循環中,但此List/Datatable除外。
這是數據表是如何在動作方法構建 - 初始請求
if(getInputXMLString() != null
&& getInputXMLString().length() >0)
{
List<NodeDetailsVO> nodes = Utility.inputXMLStringNodeDetailsVO(getInputXMLString());
setSelectedNodes(nodes);
}
當我嘗試與上述相同的在回發請求(另一個動作方法內),它的工作原理okay.When我在私有方法中添加我的業務邏輯,並且如果我將它稱爲此代碼之上或此後,它不起作用。我只在私有方法中使用List的getter。在getter方法中 - 我只在if和else內部有sysouts。
這是數據表是如何在XHTML頁面渲染:
<h:dataTable width="80%" cellspacing="0" border="1"
id="nodes_datatable" cellpadding="2"
style="border-collapse:collapse;"
value="#{createBean.selectedNodes}"
binding="#{createBean.selectedNodesHTMLDataTable}"
var="aResult"
columnClasses="columnAlignRight,columnAlignLeft"
>
感謝BalusC。 2是不正確的。我只是在getter的列表(DataModel)中打印對象的大小和值。你能解釋更多關於基於請求的參數/條件嗎?有沒有其他方法可以在請求範圍的Bean中的請求之間保留數據表值? – gekrish 2010-09-03 12:08:25
這個問題讓我覺得這個列表根本就沒有保存。你能詳細說明一下你的意思嗎?「在INVOKE-APPLICATION階段,我可以在你原來的問題中看到List的值?你是如何確定的? – BalusC 2010-09-03 12:18:36
在被調用的action方法中,我使用它的getter打印了List的值,並且我使用了PhaseListener,所以我知道在哪個階段會發生什麼。改寫 - 如何在請求範圍的bean中的請求之間保留數據表值? – gekrish 2010-09-03 12:24:44