【发布时间】:2014-05-23 02:18:09
【问题描述】:
我遇到了一些 Struts2 标签与 OGNL 混合的问题。为了克服不能在 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"/>
【问题讨论】: