BeanUtils.populate()方法的Bean对象的范围是什么?

时间:2011-11-07 14:32:01

标签: jsp servlets apache-commons-beanutils

我以前使用过<jsp:useBean>标签来判断page or request or session or application的bean范围,但现在我转到了MVC架构,我使用BeanUtils类来设置属性Servlets中的bean。请告诉我这个方法提供的默认SCOPE是什么?如果我想改变范围,我该怎么办?  我正在使用语法:

BeanUtils.populate(bean, request.getParameterMap());

2 个答案:

答案 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中使用。没有页面范围,但这无关紧要。

另见: