gpt4 book ai didi

java - 重置 JSTL 值

转载 作者:行者123 更新时间:2023-11-30 07:25:39 27 4
gpt4 key购买 nike

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

如果 if 语句为真,则应将 clientId 手动设置为 1。这确实有效,但由于某些原因,它不会获取 clientProps。

如果从 session 变量“用户”中获取,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

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

真 clientId = 1 clientLogo = clientURL =

最佳答案

<c:set var="clientId" value="1" />

这是将其设置为 String,而 map 键显然是 Long

您需要将其设置为 Long

<c:set var="clientId" value="${1}" />

EL 中的数字被隐式处理为 Long,这就是上面的方法有效的原因。

关于java - 重置 JSTL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10817314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com