spring mvc里,jsp中怎么获取bean

2025-04-28 04:07:10
推荐回答(2个)
回答1:

首先,获取的 bean 的时候要保证或取得的 bean 必须携带 spring 容器注入的属性,这里举一个简单的例子:

以 dao,service,action 这三种常见的数据模型,业务模型,控制器来举例子,(当然你使用 spring mvc 都是一样的,只不过省掉了 action,但都是控制器,你懂得):

如果jsp 视图需要接受一个 service 的 bean,必须要保证该 service 的 bean 中含有 注入的 dao 属性,这个懂吧?,如果直接在 jsp 中 new(实例化对象),这样将会丢失属性的,因为内存区域完全开辟了新的堆空间,跟 spring 容器所管理的 bean 完全不是一个,那么问题就来了,怎么样才能简单的得到这个拥有注入属性的 bean 呢?

可以尝试将该 bean 封装为控制器(controller)中的一个成员(属性),之后通过web 容器内置的request ,session ,application 等作用域来进行封装,这就是简单的解决办法了

回答2:

一、SpringMVC带的有两种方式:

  1. ModelMap,大概用法:


    @RequestMapping(value = "method1")

    public String imports(HttpServletRequest request, HttpServletResponse response, ModelMap map) {

    Bean bean = new Bean();

    map.put("bean", bean);

    }

  2. 构造ModelAndView对象,大概用法:

    Map model = new HashMap();  

    Bean bean = new Bean();

                model.put("bean",bean);  

     return new ModelAndView("reservationQuery",model); 

二、用response.getWriter();

ObjectMapper mapper = new ObjectMapper();

Bean bean = new Bean();

            model.put("bean",bean);  

mapper.writeValue(response.getWriter(), map);


这是大概用法,具体,还得靠你参考相关API,希望对你有帮助吧!

PS:一般用第1点ModelMap比较多