大家好,我目前正在编写一个Web应用程序,我遇到了使用jstl变量设置session属性的问题。
在我的应用程序中,我使用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。我知道我的{{1} }得到正确的值,因为我做了${poster.idPoster}
而不是window.alert()
行,并且得到了正确的值,所以这就是为什么我不理解为什么会话无法正确设置的原因
预先感谢您的帮助
答案 0 :(得分:0)
你做不到, 您正在调整的是在客户端设置服务器端值,这是不可能的。 您需要使用form(html)或ajax(javascript)或其他方法将所选值发送回服务器。
实际上,您是将会话值预先设置到最后一个打印服务器端。