gpt4 book ai didi

jsp - Struts 2 标签的评估似乎不一致

转载 作者:行者123 更新时间:2023-12-05 07:59:06 25 4
gpt4 key购买 nike

我对一些与 OGNL 混合的 Struts2 标签有疑问。为了克服不能在 OGNL 中嵌套表达式求值的事实,例如 %{foo[%{bar}]},我使用对变量的连续赋值来获得我需要的结果。

在下面的代码中,var grpIndex 正确评估,例如,'6''7' 在我的例子中,并打印在下一行正确输出。以下语句(第 3 行)也可以正确评估,例如,在我的例子中是 'stage''prod'

但是,在第四行中,我尝试使用与上一行相同的语法将相同的表达式设置为一个变量,以便我可以在标题中使用它。为了测试这个分配,我尝试在下一行打印出 var。我希望最后一行打印出与第三行相同的值。但是,此表达式不打印任何内容。这是为什么?

<s:set var="grpIndex" value="%{options[#optstatus.index]}"/>
grpIndex = <s:property value="#grpIndex"/><br/>
grpName = <s:text name="model[%{grpIndex}].groupName"/><br/>
<s:set var="grpName" value="model[%{grpIndex}]).groupName"/>
groupName = <s:property value="#grpName"/>

最佳答案

首先你使用的是<s:text> (第 3 行)而不是 <s:property>这将产生错误的测试结果。第二,第 4 行有错别字(未打开的括号)。最重要的是不要使用 %{}里面[]<s:property><s:set>标签。

<s:set var="grpIndex" value="options[#optstatus.index]"/>
grpIndex = <s:property value="#grpIndex"/><br/>
grpName = <s:property value="model[#grpIndex].groupName"/><br/>
<s:set var="grpName" value="model[#grpIndex].groupName"/>
groupName = <s:property value="#grpName"/>

关于jsp - Struts 2 标签的评估似乎不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22970016/

25 4 0