【问题标题】:JSTL set variable session when a <tr> is selected [duplicate]选择 <tr> 时 JSTL 设置变量会话 [重复]
【发布时间】:2019-09-29 22:44:48
【问题描述】:

大家好,我目前正在编写一个 Web 应用程序,但在使用 jstl 变量设置会话属性时遇到了问题。

在我的应用程序中,我使用 jstl foreach 标记显示对象“海报”列表。因此在 UI 上我有这些列表,我可以拖放海报表的线条,以便查看我选择的海报的详细版本。在这里,我需要获取一个变量“posterId”以将其传递给 servlet(使用会话或使用另一种方法)这是我的代码:

<c:forEach var="poster" items="${listePosters}" varStatus="loop">
    <tr data-sujets='${listeSujets[loop.index].titre}'
        data-etat= '${listeValide[loop.index]}'
        id="draggable-${loop.index}" draggable='true'
        ondragstart="drag(event,${loop.index});"
        onmouseout="fmouseup(${loop.index});"
        ondragend="enddrag(event,${loop.index});"
        onmousedown="fmousedown(${loop.index});"
        onmouseup="fmouseup(${loop.index});"
        onClick= "<c:set var="idPoster" value="${poster.idPoster}" 
        scope="session"/>;">        
    </tr>
</c:forEach>

所以这里我有 2 张海报,理论上当我点击与海报 1 一致时,会话属性应设置为 1,当我点击与海报 2 一致时,会话属性应设置为 2 我知道我的 ${poster.idPoster} 获取正确的值,因为我做了 window.alert() 而不是 c:set... 行并且我得到了正确的值,这就是为什么我不明白为什么会话设置不正确

提前感谢您的帮助

【问题讨论】:

    标签: jsp jstl


    【解决方案1】:

    你做不到, 您正在尝试的是在客户端设置服务器端值,这是不可能的。 您需要一个 form(html) 或 ajax(javascript) 或其他方法将选定的值发送回服务器。

    实际上,您正在将会话值预先设置为最后一个打印的服务器端。

    【讨论】:

      猜你喜欢
      • 2016-01-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多