问题的详细描述:struts2版本:2.1.6在TestAction这个action里,有一个属性为operationType,此属性有set get方法。这个action的execute方法执行完毕后,dispatch到success.jsp页面,在success.jsp里,用<s:property value="operationType"/>来输出operationType的值。根据struts2的doc,struts2的值栈排列顺序为:1.临时对象;2.模型对象(这个不太理解是什么东西);3.Action对象(这就是问题所在);4:固定名称对象(如#application, #session, #request等对象)。现在我在success.jsp里,用<s:property value="operationType"/>来输出operationType的值。如果在action中operationType的值为100,那么确实可以输出100. 现在我根据action在值栈中的深度,用<s:property value="%{[2].operationType}"/>来输出值,然而却不能得到值,只能用<s:property value="%{[0].operationType}"/>才能取到值。这似乎和struts2值栈的顺序不相符。我现在只能取到临时对象里的operationType的值,而却取不到action里的值,就算指定了action的值栈深度也不行。现在的情况是,只能从位于值栈顶端的临时对象取值,也就是说,只能<s:property value="%{[0].operationType}"/>才能取到值。请教各位大虾,这是怎么回事?