According to http://struts.apache.org/docs/s2-026.html :
Support for expression using top will be dropped in upcoming Struts version 2.5!
We used the top object in lots of JSP pages as below (which shows a list of currencyTypes
and look up the name from struts messages):
<s:select name = "selectedCurrencyType"
list = "currencyTypes"
listKey = "top"
listValue = "%{getText('acc.currencyType.'+top)}" />
It currently works with struts 2.3.24.1
but according to above comment, will above select box works for 2.5
, or we will not have the top reference any more?!
If this is true, please let me know how should we fix above select?!
Support for top
object was added to support internal operations, it shouldn't be used by users (yes, expressing that in docs was a bad idea :( )
Anyway, looks like we must prepare a migration path or keep support for the top
object.
What I found in this documentation and what I use in my example Passing parameters to action through ModelDriven in Struts 2 the top
object is a element of the CompaundRoot
. And this class has a cutStack()
method that is mentioned in
With expression like
[0] ... [3]
etc. Struts 2 will cut the stack and still return back aCompoundRoot
object. To get the top of that particular stack cut, use0.top
.
The last expression is a typo for [xxx].top
where xxx
is the index of the CompoundRoot
object. And this object could be referenced as [xxx]
. It is a top
object cut to the xxx
index.
来源:https://stackoverflow.com/questions/32816417/using-top-object-in-struts-2-5