Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 未根据_Jsf 2_Jstl - Fatal编程技术网

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

这样做是可能的。另见