【发布时间】:2013-05-29 14:15:30
【问题描述】:
我在动作类中有一些相同类型的对象..
例如:
LivingThings fish = new LivingThings("FISH");
LivingThings dog = new LivingThings("DOG");
LivingThings lion = new LivingThings("LION");
每个对象的内容会有所不同。
同样在同一个动作类中,我有一个值作为对象名称的列表 即
ArrayList<String> animalsList = new ArrayList<String>();
animalsList.add("fish");
animalsList.add("dog");
animalsList.add("lion");
=====
现在在 jsp 页面中,我需要使用 animalsList 内容动态获取对象内容。即
<s:iterator value="animalsList" id="eachAnimal">
<s:property value="#eachAnimal.lifespan" />
</s:iterator>
这里我要做的就是,而不是直接给出类似的代码
<s:property value="fish.lifespan" />
<s:property value="dog.lifespan" />
<s:property value="lion.lifespan" />
不知何故,我需要从animalsList 列表中附加对象名称。在struts 2.0中可以吗?我对 OGNL 概念有点困惑。
我尝试了这些场景:
<s:iterator value="animalsList" id="eachAnimal">
<s:property value="#eachAnimal.lifespan" />
<s:property value="%{eachAnimal}.lifespan" />
<s:property value="%{#eachAnimal}.lifespan" />
</s:iterator>
有人可以给我建议吗?
【问题讨论】:
-
使用 2.0,IIRC
%{#eachAnimal.lifespan}应该可以工作;你是说没有吗?不过,我建议不要使用这么旧版本的 S2。 -
为什么不能在列表中存储
LivingThings而不是字符串?无论如何,您可以像在这个问题中一样使用 OGNL 评估:stackoverflow.com/q/16712395/1700321。 -
@DaveNewton 是的,它不工作.. 我正在使用最新的 jar 文件.. 我正在使用 struts2-core-2.3.14.jar....
-
@AleksandrM 我可以将 LivingThings 用作列表,但我的情况是这样......这就是为什么......但是当我尝试使用
它的工作