【发布时间】:2014-11-19 11:16:29
【问题描述】:
我目前正在与 Struts2(缺乏经验的开发人员)合作,我一直在搜索,但找不到如何将 OGNL 表达式应用于存储在上下文中的变量。
问题是我需要从 Context 中检索一个参数并将其大写。到目前为止,我已经尝试过这样做,但遗憾的是没有运气:
<s:property value="#myVar.toUpperCase()" />
由于这适用于存储在 ValueStack 中的变量(不带 # 的符号),我真的不明白为什么这不适用于存储在 Context 中的任何内容..
如果我不将.toUpperCase() 附加到它,我可以很好地打印#myVar内容。
也尝试了这种解决方法,但没有帮助:
<s:property value="<s:property value="#myVar"/>.toUpperCase()"/>
那么我错过了什么?如何将 OGNL 表达式应用于存储在 Context 中的变量?
【问题讨论】:
-
上下文中的变量是什么意思?你是怎么把它放在那里的?
-
我已经通过隐藏参数发送它把它放在那里: 在另一个 JSP 中:
<s:hidden name="myVar"/>然后在 JSP 中我试图将它大写我做了以下而不是尝试访问它来自#parameters.myVar:<s:set var="myVar" value="%{#parameters.myVar}"/> -
有什么理由通过
#parameters获得价值?为什么不将其映射到 action 属性并从 action 中获取? -
我通过 #parameters 设置它,因为我认为它比在操作 .java 中声明一个新字符串更干净、更容易,因为我只需要它用于只读。无论如何,正如我所说,我是开发新手,所以任何建议/指导将不胜感激:)
-
我不知道你的要求,但是在 action 中添加属性并没有错。
标签: variables struts2 expression ognl