我以前使用<jsp:useBean>
的标签可以决定 bean 的范围,page or request or session or application
但现在我转移到了 MVC 架构,在那里我使用BeanUtils
类来设置 bean 的属性Servlets
。请告诉我SCOPE
这种方法提供的默认值是什么?如果我想改变范围,我必须做什么?我正在使用语法:
BeanUtils.populate(bean, request.getParameterMap());
我以前使用<jsp:useBean>
的标签可以决定 bean 的范围,page or request or session or application
但现在我转移到了 MVC 架构,在那里我使用BeanUtils
类来设置 bean 的属性Servlets
。请告诉我SCOPE
这种方法提供的默认值是什么?如果我想改变范围,我必须做什么?我正在使用语法:
BeanUtils.populate(bean, request.getParameterMap());
没有与 javabean 关联的范围。范围仅与 jsp/webapp 相关。从这个意义上说, BeanUtils.populate(..) 不会将 bean 存储在 Web 上下文中的任何位置,因此它没有范围。如果您选择将这样创建的 bean 添加到给定的上下文中,那么只有它才有范围。
BeanUtils#popuate()
不会将 bean 存储在任何地方。它只是填充 bean。更改会反映在bean
您所在的实例中。你知道,Java 是面向对象和按值传递的。在调用该行之后,填充 bean。您只需要自己将 bean 存储在所需的范围内。
请求范围:
request.setAttribute("bean", bean);
会议范围:
request.getSession().setAttribute("bean", bean);
适用范围:
getServletContext().setAttribute("bean", bean);
无论哪种方式,它都可以在 JSP 中通过${bean}
. 没有页面范围,但无论如何这都不相关。