gpt4 book ai didi

variables - 将 OGNL 表达式应用于上下文变量

转载 作者:行者123 更新时间:2023-12-02 03:30:35 26 4
gpt4 key购买 nike

我目前正在使用 Struts2(没有经验的开发人员)并且我一直在搜索但我找不到如何将 OGNL 表达式应用于存储在上下文中的变量。

问题是我需要从 Context 中检索一个参数并将其大写。到目前为止,我已经尝试过这样做,但遗憾的是没有运气:

<s:property value="#myVar.toUpperCase()" />

因为这适用于存储在 ValueStack 中的变量(没有 # 的符号),我真的不明白为什么这不适用于存储在 Context 中的任何内容..

如果我不将 .toUpperCase() 附加到它,我可以打印 #myVar 内容。

也尝试了这个解决方法但没有帮助:

<s:property value="<s:property value="#myVar"/>.toUpperCase()"/>

那么我缺少的东西是什么?如何将 OGNL 表达式应用于存储在 Context 中的变量?

最佳答案

您的变量很可能不是字符串,因此不存在 toUpperCase()其中的方法。解决方法是调用toString()打电话前toUpperCase() .

<s:property value="#myVar.toString().toUpperCase()" />

更新

其实你的问题就在这里<s:set var="myVar" value="%{#parameters.myVar}"/>因为可能不止一个myVar在参数中它将返回一个字符串数组,因此如果您只需要一个参数,请将表达式更改为 #parameters.myVar[0]然后 toUpperCase()将工作。

<s:set var="myVar" value="%{#parameters.myVar[0]}"/>
<s:property value="#myVar.toUpperCase()" />

<s:set var="myVars" value="%{#parameters.myVar}"/>
<s:property value="#myVars[0].toUpperCase()" />

关于variables - 将 OGNL 表达式应用于上下文变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27015501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com