我正在使用struts 2.2.3.1,将数据库中的一些对象加载到一个动作中,然后用<ul>
中的Freemarker 2.3.16显示它们。
我想要的功能是:当我点击<li>
中的<ul>
时,我可以将查看的对象设置为应用程序的会话范围。
现在我只有这个:
<ul>
<@s.iterator value="objectList" var="object">
<li>
<@s.url id="myUrl" action="viewObjectPage">
<@s.set name="objectToBeViewed" value="${object}" scope="session"/>
</@s.url>
<@s.a href="%{myUrl}">
${object.information?substring(0,7)}...
</li>
</@s.iterator>
</ul>
我问是否有办法使用仅 struts 2标记将对象放入会话。
答案 0 :(得分:2)
您可以使用<s:set>
标记。 set 标记为指定范围内的变量分配值。当您希望将变量分配给复杂表达式,然后每次只引用该变量而不是复杂表达式时,它非常有用。这在两种情况下都很有用:复杂表达式需要时间(性能改进)或难以阅读(代码可读性改进)。
<s:set name="personName" value="person.name" scope="session" />
注意:您应该使用OGNL而不是在Struts标记中使用EL($ {})。
&lt; @ s.set name =“objectToBeViewed”value =“ $ {object} ”scope =“session”/&gt;
用OGNL替换EL内部值属性。
&lt; @ s.set name =“objectToBeViewed”value =“ object ”scope =“session”/&gt;