Struts 2.0 - 动态附加s:属性值

时间:2013-06-03 12:19:30

标签: java jsp struts2 ognl

我在动作类中有一些相同类型的对象。

E.g:

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>

有人可以给我建议吗?

1 个答案:

答案 0 :(得分:1)

也许这不是处理此类案件的最佳方式,但你所要求的可以这样做:

<s:iterator value="animalsList" id="eachAnimal">
  <s:property value="#attr[#eachAnimal].lifespan" />
</s:iterator>