2010-11-30 34 views
0

我有另一個問題需要解決。我有我的XHTML頁面上的代碼:如何使用c:set使用jsf設置bean的值?

<t:dataList id="myDataList" value="#{myBean.myList}" var="element" first="0" `rows="10" dir="LTR" frame="hsides" rules="all">` 
<c:set target="#{myBean}" property="fid" value="#{element[0]}"/> 
... 
</t:dataList> 

的問題是在豆「FID」即值爲null時我真的檢查它。當我寫道:

<c:set target="#{myBean}" property="fid" value="8"/> 

一切工作正常,值設置爲'8'。我應該如何解決這個問題?感謝您的回覆。

回答

0

JSTL標籤在查看構建時運行。 JSF標籤在視圖渲染時運行。您可以按如下方式對其進行可視化:當JSF組件樹將被填充時,JSTL首先從上到下運行,然後將組件樹移交給JSF,最後JSF從上到下運行以呈現HTML。

當JSTL創建視圖時element[0]不存在。只有當JSF呈現HTML時纔會出現這種情況。但是,8是硬編碼的,它始終在那裏。

有幾種方法可以以正確的方式實現它,但由於功能要求不清楚,我無法提出正確的方法。也許你需要f:setPropetyActionListener。也許你需要DataModel#getRowData()UIData#getRowData()。或者,也許你根本不需要它。

+0

感謝您向我解釋這一點。幸運的是,我已經發現我的問題的另一個解決方案,我不需要使用此代碼。問候你! – problemgenerator 2010-11-30 15:28:50

相關問題