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