Jsf 2 未根据
我编写了如下代码:Jsf 2 未根据,jsf-2,jstl,Jsf 2,Jstl,我编写了如下代码: <ui:repeat var="fstDayWk" value="#{calendarBean.date}"> <c:choose> <c:when test="#{fstDayWk == 'Sun'}"> <c:set var="fstDayWk" value="7"/> </c:when> &
<ui:repeat var="fstDayWk" value="#{calendarBean.date}">
<c:choose>
<c:when test="#{fstDayWk == 'Sun'}">
<c:set var="fstDayWk" value="7"/>
</c:when>
<c:when test="#{fstDayWk =='Mon'}">
<c:set var="fstDayWk" value="1" />
</c:when>
<c:when test="#{fstDayWk =='Tue'}">
<c:set var="fstDayWk" value="2" />
</c:when>
<c:when test="#{fstDayWk =='Wed'}">
<c:set var="fstDayWk" value="3" />
</c:when>
<c:when test="#{fstDayWk =='Thu'}">
<c:set var="fstDayWk" value="4" />
</c:when>
<c:when test="#{fstDayWk =='Fri'}">
<c:set var="fstDayWk" value="5" />
</c:when>
<c:when test="#{fstDayWk =='Sat'}">
<c:set var="fstDayWk" value="6"/>
</c:when>
<c:otherwise>
<c:set var="fstDayWk" value="1" />
</c:otherwise>
</c:choose>
</ui:repeat>
但是在这里,fstDayWk的赋值总是1。为什么会这样?如何根据JSF中的某些条件将值设置为某个变量?JSTL标记在视图构建期间运行,此时JSF组件树将基于XHTML文件中的JSF标记进行构建。JSF组件(例如)依次在视图呈现时运行,此时构建的JSF组件树即将生成HTML代码 因此,并不像您从编码中所期望的那样同步运行。事实上,它首先是在视图构建期间运行的,然后是在视图渲染期间运行的。在运行时,应该由设置的{fstDayWk}在EL范围内的任何位置都不可用,因此始终以该条件结束 如果您使用而不是使用,它将起作用。但是,更好的做法是在模型中使用一个映射,该映射维护一周中的某一天与其索引之间的映射,这样您就不再需要整个丑陋的块了 另见:
JSTL标记在视图构建期间运行,此时JSF组件树将基于XHTML文件中的JSF标记进行构建。JSF组件(例如)依次在视图呈现时运行,此时构建的JSF组件树即将生成HTML代码 因此,并不像您从编码中所期望的那样同步运行。事实上,它首先是在视图构建期间运行的,然后是在视图渲染期间运行的。在运行时,应该由设置的{fstDayWk}在EL范围内的任何位置都不可用,因此始终以该条件结束 如果您使用而不是使用,它将起作用。但是,更好的做法是在模型中使用一个映射,该映射维护一周中的某一天与其索引之间的映射,这样您就不再需要整个丑陋的块了 另见:
这对地图有什么帮助?你能不能给我举个例子解释一下?很难说,因为你没有展示代码中实际需要星期几索引的部分。但是类似于的一周中某一天的索引是{bean.map[fstDayWk]}这样做是可能的。另请参见这对地图有何帮助?你能不能给我举个例子解释一下?很难说,因为你没有展示代码中实际需要星期几索引的部分。但是类似于的一周中某一天的索引是{bean.map[fstDayWk]}这样做是可能的。另见