Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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 重置JSTL值_Java_Jsp_Jstl - Fatal编程技术网

Java 重置JSTL值

Java 重置JSTL值,java,jsp,jstl,Java,Jsp,Jstl,我不明白为什么这不起作用。基本上,除非c:if为true,否则以下代码段工作正常 如果If语句为true,则应手动将clientId设置为1。这确实有效,但由于某种原因,它将无法获取clientProps 如果从会话变量“user”中获取ClientId=1,则它可以正常工作。所以clientProps应该在第1点有一些东西。 有线索吗 <c:set var="clientId" value="${sessionScope['user'].client.clientId}"/> &l

我不明白为什么这不起作用。基本上,除非c:if为true,否则以下代码段工作正常

如果If语句为true,则应手动将clientId设置为1。这确实有效,但由于某种原因,它将无法获取clientProps

如果从会话变量“user”中获取ClientId=1,则它可以正常工作。所以clientProps应该在第1点有一些东西。 有线索吗

<c:set var="clientId" value="${sessionScope['user'].client.clientId}"/>
<c:if test="${empty sessionScope['user'].client.clientId}">
    True
    <c:set var="clientId" value="1" />
</c:if>

<c:set var="clientProperties" value="${clientProps[clientId]}"/>
<c:set var="clientLogo" value="${clientProperties.clientLogo}"/>
<c:set var="clientURL" value="${clientProperties.clientWebURL}" />
clientId = ${clientId}
clientLogo = ${clientLogo}
clientURL = ${clientURL}
如果用户对象存在,则返回结果:

clientId=1 clientLogo=/images/logos/Logo1.png clientURL=http://www.xxx.xxx

如果用户对象不存在,则返回结果:

True clientId=1 clientLogo=clientURL=

这是将其设置为字符串,而映射键显然很长

您需要将其设置为Long

EL中的数字隐式处理为Long,这就是为什么上面的方法会起作用

这是将其设置为字符串,而映射键显然很长

您需要将其设置为Long


EL中的数字被隐式视为Long,这就是为什么上面的方法会起作用。

在这两种情况下,clientId的类型是否相同?从“User”对象获取时,它是Long。当我手动设置它时是什么我不知道..你试过将它设置为长的吗?不知道它是否能解决问题。在这两种情况下,clientId的类型是否相同?从“User”对象获取时,这是一个很长的过程。当我手动设置它时是什么我不知道..你试过将它设置为长的吗?不知道它是否能解决问题。