我正在使用struts 2并尝试执行以下操作(根据操作属性和其他变量值创建动态变量名称):
定义变量如下:
<ps:set name="flag_${_actionProperty}" value="class.property"/>
<ps:set name="flag2_%{#flag_${_actionProperty}}_${_actionProperty}"
value="class.property2"/>
我正在尝试访问flag2的值,如下所示,但它似乎不起作用,知道所有类(模型)属性值和操作属性值都不为空:
<ps:text name='%{#flag2_%{#flag_${_actionProperty}}_${_actionProperty}}'/>
请告知该怎么做。谢谢。
换句话说,如何访问变量值,该变量值取决于同一范围内另一个变量的值:
这是变量1,它的名字是&#34; flag _&#34;某个具有值的action属性,并且被赋值为变量,该属性在action中定义并具有值。
<ps:set name="flag_${_actionProperty}" value="class.property"/>
直到现在我们都很安全。
接下来我需要定义另一个变量flag2,这个变量的名称是动态的,并且取决于变量&#34; flag_key&#34;的值(假设$ {_ actionProperty}计算为&#34; key& #34;在运行时)所以变量1的名称将是flag1_key。第二个定义的变量将是action&quot; class.property2&#39;中另一个类属性的值。但是这个变量的名称取决于第一个变量&#34; flag_key&#34;的值。
让我们说class.property的值是&#39;标准&#39;,所以我希望变量2的名称是&#34; flag2_standard_key&#34;其中&#39;标准&#39;是第一个变量的值和&#39;键&#39;是action属性的值。我需要为第二个变量赋值class.property2&#34;
<ps:set name="flag2_%{#flag_${_actionProperty}}_${_actionProperty}" value="class.property2"/>
所以我要做的是访问文本标记中第二个变量的值,我需要计算第一个变量的值来获取第二个变量的名称,然后依次计算其值带动态名称的第二个变量,用于获取class.property2的值
<ps:text name='%{#flag2_%{#flag_${_actionProperty}}_${_actionProperty}}'/>
据我所知,我直接使用第二个变量名称中的class属性,如下所示:
<ps:text name='%{#flag2_${class.property}_${_actionProperty}}'/>
我可以通过这种方式得到变量2的值。但是如果名称是基于独立于动作的值构建的呢?这可行吗?