【问题标题】:Struts2: Evaluate string literal for property valueStruts2:评估字符串文字的属性值
【发布时间】:2016-08-29 17:07:09
【问题描述】:

我正在尝试做类似于this question 的事情,但答案并不能解决我的问题。我正在使用 Struts2 版本 2.3.28.1。

我正在尝试使用<s:property> 标记和动态值字符串文字访问会话中的数据。

如果我这样做:

<s:property value="#session.data_1"></s:property>

然后显示正确的数据。现在,当我尝试以下操作时:

<s:set var="part1" value="#variable.code"></s:set>
<s:set var="part2" value="'#session.data_'+#part1"></s:set>

<s:property value="part2"></s:property> 
<s:property value="%{part2}"></s:property> 
<s:property value="%{#part2}"></s:property>
<s:property value="#attr[#part2]" default="Not working"></s:property>
<s:property value="(#part2)" default="Not working"></s:property>
<s:property value="%{(#part2)}" default="Not working"></s:property>

哪些显示:

#session.data_1
#session.data_1
#session.data_1
Not working
#session.data_1
#session.data_1

(是的,我尝试了所有我能想到的可能组合,即使它们没有意义......)

如何使&lt;s:property&gt; 标记评估#part2 而不是解释为字符串文字?以我的理解%{} 应该可以做到这一点,但没有。

【问题讨论】:

    标签: jsp struts2 ognl dynamic-variables struts-tags


    【解决方案1】:

    您正在尝试从会话中检索值并通过#attr 它不起作用。

    有更简单的方法。直接使用#session 关键字。

    <s:property value="#session['data_' + #variable.code]" />
    

    【讨论】:

    • 谢谢!!我用那个撞到桌子上,哈哈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2013-09-15
    • 2020-04-20
    • 2019-03-30
    • 1970-01-01
    相关资源
    最近更新 更多