使用' top' Struts 2.5中的对象

时间:2015-09-28 05:49:21

标签: java jsp struts2 ognl

根据http://struts.apache.org/docs/s2-026.html

  

使用top支持表达式将在即将推出的Struts中删除   版本2.5!

我们在许多JSP页面中使用 top 对象,如下所示(显示currencyTypes列表并从struts消息中查找名称):

<s:select name = "selectedCurrencyType" 
          list = "currencyTypes"
       listKey = "top" 
     listValue = "%{getText('acc.currencyType.'+top)}" />

它目前适用于struts 2.3.24.1,但根据上述评论,上面的选择框是否适用于2.5,或者我们不会再有顶级参考了?!

如果这是真的,请告诉我们应该如何解决以上问题?!

2 个答案:

答案 0 :(得分:3)

添加了对top对象的支持以支持内部操作,用户不应该使用它(是的,在docs中表示这是一个坏主意:()

无论如何,看起来我们必须准备一个迁移路径或继续支持top对象。

答案 1 :(得分:1)

我在本文档中发现的内容以及我在示例Passing parameters to action through ModelDriven in Struts 2中使用的内容top对象是CompaundRoot的一个元素。这个类有一个{/ 3}}方法,在

中提到
  

使用[0] ... [3]之类的表达式.Struts 2将削减堆栈和   仍然返回CompoundRoot个对象。要获得最高分   特定的堆叠切割,使用0.top

最后一个表达式是[xxx].top的拼写错误,其中xxxCompoundRoot对象的索引。此对象可以引用为[xxx]。它是top对象切割为xxx索引。