【问题标题】:Struts2 - JSP EL - Concatenation doesn't seem to workStruts2 - JSP EL - 连接似乎不起作用
【发布时间】:2014-09-26 20:00:37
【问题描述】:

试图弄清楚这个问题很长时间......

我正在使用来自对象的值设置一个变量。

<s:set name="bodyText" value='First Name "myObject.name"'/>

并尝试通过以下方式打印它..这些都不起作用。

"${bodyText}"
"<s:property value="#bodyText" />"
"${#bodyText}"
"%{bodyText}"
"%{#bodyText}"

不确定问题出在哪里

我也尝试了以下方法:

<s:set name="bodyText" value='First Name "${myObject.name}"'/>

但它不起作用。

【问题讨论】:

    标签: java jsp struts2 el ognl


    【解决方案1】:

    value 属性应该是一个对象。 OGNL 使用引号来分隔字符串对象,其他引号应该被转义。

    并使用var 属性作为变量名。

    <s:set var="bodyText" value="'First Name \"myObject.name\"'"/>
    <s:property value="bodyText" />
    

    【讨论】:

    • 打印时这只是bodyText还是#bodyText?
    • 为什么我们除了双引号还需要单引号?!?!它虽然有效!!!
    • 使用配额我们定义一个字符串对象,然后它可以打印。如果您删除单个配额,则不会打印任何内容。包含双重配额(属性)的所有内容都被视为 OGNL 表达式并且无法返回对象。同样在 OGNL 表达式中,您不能使用 EL,请参阅前面的错误。
    • 感谢 Dave 的编辑,晚安! @KevinRave 不客气!
    • @Roman C 我不知道 s:set 值可以以这种方式使用 所有封闭的双配额(属性)都被视为 OGNL 我在任何地方都找不到这种技术.你能告诉我这是否是一个记录的功能,它在 struts 站点中的什么位置,可能还有更多我们不知道的东西!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2013-09-08
    相关资源
    最近更新 更多