如何使用c设置bean中的值:用jsf设置?

时间:2010-11-30 14:26:24

标签: jsf java-ee

我还有另一个问题需要解决。我的xhtml页面上有一个代码:

<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>

问题在于&#39; fid&#39;当我检查它时,bean中的null为null。我写的时候:

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

一切正常,价值设定为&#39; 8&#39;。我该如何解决这个问题?谢谢你的回复。

1 个答案:

答案 0 :(得分:0)

JSTL标记在视图构建期间运行。 JSF标记在视图渲染时运行。您可以将其可视化如下:当要填充JSF组件树时,JSTL首先从上到下运行,然后将组件树移交给JSF,最后JSF从上到下运行以呈现HTML。

当JSTL创建视图时,element[0]不存在。只有当JSF呈现HTML时才会出现这种情况。但是,8是硬编码的,它始终存在。

有几种方法可以以正确的方式实现它,但由于功能要求不清楚,我无法提出正确的方法。也许你需要f:setPropetyActionListener。也许您需要DataModel#getRowData()UIData#getRowData()。或许你根本不需要它。