文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring MVC数据响应处理详解

2024-04-02 19:55

关注

1. 内置视图解析器

Spring MVC 中的视图解析器负责解析视图,可以通过在配置文件中定义一个ViewResolver来配置视图解析器,配置如下:

<!--默认的内置视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!--设置前缀-->
    <property name="prefix" value="/WEB-INF/templates"/>
    <!--设置后缀-->
    <property name="suffix" value=".html"/>
</bean>

定义了一个id为viewResolver的视图解析器,并设置了前缀后缀,这样设置的好处就是简化方法中定义的路径。在访问视图解析器是就会自动的增加前缀和后缀。

2. 使用原生servlet的对象传递数据

HttpServletRequest:通过request对象获取请求信息

控制器方法:

//使用servlet传递数据
@RequestMapping("/testServlet")
public String testRequestByServletAPI(HttpServletRequest request){
    request.setAttribute("test","hello,servlet");
    return "success";
}

3. 使用ModelAndView对象传输数据

当使用modelAndView对象的时候,返回值的类型也必须是ModelAndView,可以将要跳转的页面设置成view的名称,来完成跳转的功能,同时数据也是放到request域中。

使用方式:

控制器方法:

 @RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView(){
        //创建ModelAndView对象
        ModelAndView mav = new ModelAndView();
        //处理模型数据,即向请求域request共享数据
        mav.addObject("test","Hello ModelAndView");
        //设置视图名称
        mav.setViewName("success");
        return mav;
    }

ModelAndView对象的作用:

将控制器方法中处理的结果数据传递到结果页面,也就是把在结果页面上需要的数据放到ModelAndView对象中即可,其作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。

4. 使用Model、Map、ModelMap传输数据

在SpringMVC中除了可以使用原生servlet的对象传递数据之外,还有什么其他的方式呢?
可以在方法的参数上传入Model,ModelMap,Map类型,此时都能够将数据传送回页面。

控制器方法:

@RequestMapping("/testModel")
public String testModel(Model model){
     model.addAttribute("test","Hello Model");
     return "success";
 }

 @RequestMapping("/testMap")
 public String testMap(Map<String,Object> map){
     map.put("test","Hello Map");
     return "success";
 }

 @RequestMapping("/testModelMap")
 public String testModelMap(ModelMap modelMap){
     modelMap.addAttribute("test","hello modelmap");
     return "success";
 }

如果方法的入参为Map,Model和ModelMap类型,Spring MVC会将隐含模型的引用传递给这些入参。在方法体内,开发者可以通过这个入参对象访问到模型中的所有数据,也可以向模型中添加新的属性数据,作用类似于request对象的setAttribute方法的作用: 用来在一个请求过程中传递处理的数据。

三者之间的关系:

5. 使用session传输数据

HttpSession:通过session对象得到session中存储的对象

控制器方法

//向session域共享数据
@RequestMapping("/testSession")
 public String testSession(HttpSession httpSession){
     httpSession.setAttribute("testSessionScope","hello session");
     return "success";
 }

 //向application域共享数据
 @RequestMapping("/testApplication")
 public String testApplication(HttpSession session){
     ServletContext servletContext = session.getServletContext();
     servletContext.setAttribute("testApplicationScope","hello application");
     return "success";
 }

总结

到此这篇关于Spring MVC数据响应处理的文章就介绍到这了,更多相关Spring MVC响应处理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯