在Struts 2.5中使用’top’对象

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

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

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

  

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

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

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

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

我在本文档中发现的以及我在示例中使用的内容通过Struts 2中的ModelDriven将参数传递给操作 , top对象是CompaundRoot一个元素。 这个类有一个cutStack()方法,在中提到

使用像[0] ... [3]等表达式.S括栏2将剪切堆栈并仍然返回一个CompoundRoot对象。 要获得特定堆栈切割的顶部,请使用0.top

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