+ -
当前位置:首页 → 问答吧 → sturts2标签加不加#号的区别

sturts2标签加不加#号的区别

时间:2011-12-19

来源:互联网

我习惯这么用:<s:property value="model[0].leg_value"></s:property>
但是今天在做一个东西的时候必须得这么写才能迭代出东西<s:property value="#model[0].leg_value"></s:property>
问下高手,加不加#号有什么区别

作者: a3737500   发布时间: 2011-12-19

加#号的作用是去栈中找这个属性,request , session , application一个一个找

作者: z574438205   发布时间: 2011-12-19

简单的说, #是访问ognlContext中的对象, 而不加#是在ValueStack中搜寻栈中对象的属性。
例如<s:property name="#session" /> 是在OgnlContext中获取session。
而<s:property name="userName" />是在ValueStack中的对象中从栈顶往下依次搜寻对象中的userName属性,一旦找到立马返回

作者: izard999   发布时间: 2011-12-19

引用楼主 a3737500 的回复:
我习惯这么用:<s:property value="model[0].leg_value"></s:property>
但是今天在做一个东西的时候必须得这么写才能迭代出东西<s:property value="#model[0].leg_value"></s:property>
问下高手,加不加#号有什么区别

根据你的描述, 我判断你平常的习惯是把返回给页面的数据就直接作为Action的属性了, 而今天是放在ContextMap中的。

作者: izard999   发布时间: 2011-12-19