![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
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"/>是如何取到值的?谢谢! 展开
但是这时候用s:property取得temp2的值,value直接就取temp2了,而不是写#temp2(从ActionContext中)也不是写#request.temp2(从request中)。但是取到值了,但是这么写不是直接从值栈中取值吗,但是用s:debug看了一下发现值栈中没有这个temp2呢。
所以,问一下<s:property value="temp2"/>是如何取到值的?谢谢! 展开
展开全部
<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 。
当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 。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询