Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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
Java jstlc:设置条件_Java_Jsp_Jstl - Fatal编程技术网

Java jstlc:设置条件

Java jstlc:设置条件,java,jsp,jstl,Java,Jsp,Jstl,需要你帮我弄清楚这件事。 脚本: 在我的JSP上,我试图打印 <b>Season 1: ${season}</b> <b>Season 2: ${season}</b> Season 1:${Season} 第二季:${Season} 第一次打印时效果很好(两季最初打印为“冬季”)。现在我想添加一个if条件来更改季节值,如: <c:if test="${temperature eq 'HOT' || 'VERYHOT'}">

需要你帮我弄清楚这件事。
脚本: 在我的JSP上,我试图打印

<b>Season 1: ${season}</b>

<b>Season 2: ${season}</b>
Season 1:${Season}
第二季:${Season}
第一次打印时效果很好(两季最初打印为“冬季”)。现在我想添加一个if条件来更改季节值,如:

<c:if test="${temperature eq 'HOT' || 'VERYHOT'}">
       <c:set var="season" value="summer is here" />
 </c:if>

在执行此if条件时,第1季变为“夏天到了”,但第2季保持不变。为什么一直如此?第1季是page1.jsp的一部分,第2季是page2.jsp的一部分 它们包含在parentPage.jsp中,有两个问题:

首先,你的比较是无效的。第二个条件总是
true
。相应地进行修正:


其次,您将变量存储在默认页面范围中,该范围不在包含的JSP页面之间共享。而是将其存储在请求范围中



更新:根据评论,这些JSP不参与相同的请求。然后,您应该抓取会话作用域(并注意,通过这种方式,变量将在所有浏览器窗口/选项卡中的所有请求中公开!这本身并不可取)。您应该只确保在每个
中指定范围



EL表达式
${seasure}
将分别在页面、请求、会话和应用程序范围中搜索第一个非空属性。因此,如果您在没有明确作用域的情况下执行
,那么它将存储在页面作用域中,并在相同的页面中获得。

季节
的作用域是什么?另外,您将
测试更改为
${temperature eq'HOT'| | temperature eq'VERYHOT'}
。parentPage.jsp是否包含
标记?如何包括page1和page2?嗨,Matt,我把它保留在默认范围。Mac,它的page1.jsp包含c:ifThanks BalusC,我总是在发布JSTL问题时等待你的答复;)我要试一下,还是一样的问题。正在尝试会话范围。应该可以正常工作。也许你的第二次收录是在第一次收录之前物理收录的?也许我没有解释清楚。这不是一个请求的一部分。我可以使用会话范围吗?这个问题确实不清楚。您说过这两个JSP都包含在同一个父页面中。我再次更新了答案。