struts2 作用域

发布于 2021-11-04 23:01:54 字数 77 浏览 877 评论 3

为什么用struts2时只要在action 设置一下get ,set 方法 就能在其跳转到的页面取到值呢???

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

醉生梦死 2021-11-09 17:35:20

非常感谢,非常感谢

冷弦 2021-11-09 03:19:30

当Struts2接受一个请求时,会迅速创建ActionContext,ValueStack,action.然后把action存放进ValueStack.

而EL表达式也能够访问到valueStack中的对象属性值,是因为struts2对HttpServletRequest做了进一步的封装.

public class StrutsRequestWrapper extends HttpServletRequestWrapper {
	public StrutsRequestWrapper(HttpServletRequest req) {
		super(req);
	}
	
	public Object getAttribute(String s) {
		......
		ActionContext ctx = ActionContext.getContext();
		Object attribute = super.getAttribute(s);//先从request范围获取属性值
		if (ctx != null) {
			if (attribute == null) {//如果从request范围没有找到属性值,即从ValueStack中查找对象的属性值
			......
			ValueStack stack = ctx.getValueStack();//获取valueStack对象
			attribute = stack.findValue(s);//从valueStack中的对象中查找指定的属性值
			......
			}
		}
		return attribute;
	}
}

 

 

緦唸λ蓇 2021-11-08 13:55:10

非常感谢,我调查一下!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文