j2ee问题,关于struts的set标签的使用,谢谢!

如图,从ActionContext中取值#p3.name赋值给temp2了,没有指定scopr,那么temp2应该默认存在于ActionContext中和request中... 如图,从ActionContext中取值#p3.name赋值给temp2了,没有指定scopr,那么temp2应该默认存在于ActionContext中和request中。
但是这时候用s:property取得temp2的值,value直接就取temp2了,而不是写#temp2(从ActionContext中)也不是写#request.temp2(从request中)。但是取到值了,但是这么写不是直接从值栈中取值吗,但是用s:debug看了一下发现值栈中没有这个temp2呢。

所以,问一下<s:property value="temp2"/>是如何取到值的?谢谢!
展开
 我来答
love爱有缘
2014-04-06 · TA获得超过1041个赞
知道小有建树答主
回答量:789
采纳率:0%
帮助的人:676万
展开全部
<s:set var="temp2" value="#p3.name" ></s:set>

当temp2的值类型为 String的时候 ,
<s:property value="temp2" />是可以获取到的

当temp2的值类型为不是String的时候 ,
<s:property value="temp2" /> 会产生类型转换异常
其实 <s:property value="temp2" /> 如果没有#的话,会首先到 value Stack 中查找数据,如果没找到,会去stack context 中查找,并将结果赋值为 String类型

所以 如果你查找stack context中的String值的话, #不写也能找到,但如果 value stack中有,就不会找 stack context 。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式