目录

  • 1. 页面跳转
  • 2. 回写数据@ResponseBody注解

1. 页面跳转

  • 转发,如果有视图解析器,要写全路径/pages/success.jsp
@RequestMapping("/save4")
public String save4(HttpServletRequest req) {req.setAttribute("key", "value 4");return "forward:/pages/success.jsp";
}
  • 重定向
@RequestMapping(value = "/redirect")
public String testRedirect() {return "redirect:/pages/success.jsp";
}
  • 视图解析器(自动加上前后缀)
    https://editor.csdn.net/md/?articleId=108309962
  • ModelAndView对象
  1. 返回ModelAndView对象
    /*** 页面跳转之* @return 返回视图模型对象*/@RequestMapping(value = "/save1")public ModelAndView save1() {System.out.println("save running..");ModelAndView modelAndView = new ModelAndView();// 视图对象用来展示数据  跳转到success页面modelAndView.setViewName("success");// 模型对象用来封装对象modelAndView.addObject("key", "i am value");return modelAndView;}
  1. ModelAndView 作为形参,springmvc框架自动注入
    /*** model and view 作为参数, 返回ModelAndView* @param modelAndView* @return*/@RequestMapping("/save2")public ModelAndView save2(ModelAndView modelAndView) {modelAndView.setViewName("success");modelAndView.addObject("key", "i am value 1");return modelAndView;}
  1. model作为形参
    /*** model作为参数 返回视图可* @param model* @return*/@RequestMapping("/save3")public String save3(Model model) {model.addAttribute("key", "i am value 3");return "success";}

2. 回写数据@ResponseBody注解

@ResponseBody注解简单介绍,用来返回字符串,对象。1. @ResponseBody 告知spring mvc框架,该方法,不进行视图跳转,直接进行视图响应2. 回写json,Jackson,(jackson-core, jackson-databind, jackson-annotations)3. 回写对象,或者集合, 封装对象或者转换json的步骤,需要繁琐的配置。RequestMappingHandlerAdapter注入集合。。4. 使用<mvc:annotation-driven/>自动集成转换json
  • 回写字符串
    @RequestMapping("/save5")@ResponseBody // 告知spring mvc框架 回写字符串,而不是视图跳转public String save5() {return "hello world !";}
  • 返回json字符串,使用Jackson,导入pom
    @RequestMapping("/save6")@ResponseBodypublic String save6() {User user = new User();user.setName("jack");user.setAge(18);ObjectMapper objectMapper = new ObjectMapper();String str = null;try {str = objectMapper.writeValueAsString(user);} catch (JsonProcessingException e) {e.printStackTrace();}return str;}
  • 通过mvc复杂配置,或者添加注解驱动
    /*** 返回用户对象* @return mvc框架通过配置帮你转为json格式 / mvc注解驱动*/@RequestMapping(value = "/save7")@ResponseBodypublic User save7() {User user = new User();user.setName("bitqian");user.setAge(19);return user;}
  • 处理器映射器注入Jackson
   <!-- 配置处理器映射器 用于json等的转换--><bean id="requestMappingHandlerAdapter"class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"><property name="messageConverters"><list><!-- 可配置 多个 消息转换器--><!-- 配置Jackson转换器--><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/></list></property></bean>
  • 或者更好的注解驱动代替上面
<mvc:annotation-driven/>

spring mvc响应数据方式相关推荐

  1. Spring MVC 响应数据、作用域对象

    紧耦方式完成响应: 使用:在单元方法的形参中声明request对象或者response对象,使用request对象完成转发,使用response对象完成直接响应或者重定向. 注意:使用这两种方式,单元 ...

  2. Spring MVC JSON数据交互(附带实例)

    Spring MVC 在数据绑定的过程中需要对传递数据的格式和类型进行转换,它既可以转换 String 等类型的数据,也可以转换 JSON 等其他类型的数据.本节将针对 Spring MVC 中 JS ...

  3. spring mvc 响应处理post请求和get请求 测试

    **********web.xml********************** <?xml version="1.0" encoding="UTF-8"? ...

  4. Spring mvc 响应字符串

    @RequestMapping("/test") public void testVoid(HttpServletRequest request, HttpServletRespo ...

  5. 【Spring-MVC基础】由浅入深-Spring MVC

    本文致力于由浅入深的去介绍,使用Spring MVC:细节比较多,希望能对正在观看的你有所帮助! 博主水平有限,难免存在缺陷和错误,欢迎大佬的指出与补充,谢谢! 0x01.认识Spring MVC 1 ...

  6. Spring MVC【入门】就这一篇

    MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Ja ...

  7. Spring MVC和REST中@RestController和@Controller注释之间的区别

    Spring MVC中的@RestController注释不过是@Controller和@ResponseBody注释的组合. 它已添加到Spring 4.0中,以简化在Spring框架中RESTfu ...

  8. 14.6 Spring MVC 测试框架(翻译)

    14.6 Spring MVC 测试框架(每天翻译一点点) Spring MVC测试框架对 Spring MVC 代码提供一流的测试支持 ,它拥有一个 fluent API ,可以和JUnit, Te ...

  9. Spring MVC 实践 - Base

    Spring MVC 实践 标签 : Java与Web Spring Web MVC Spring-Web-MVC是一种基于请求驱动的轻量级Web-MVC设计模式框架, Spring MVC使用MVC ...

最新文章

  1. 6 Java Shell排序
  2. P1603 斯诺登的密码
  3. form表单中method的get和post区别
  4. Mybatis(三) 映射文件详解
  5. 深入剖析分布式监控 CAT —— 消息文件存储
  6. Android PorterDuff.Mode
  7. 内中断---汇编学习笔记
  8. CF 295A - Greg and Array 差分數列
  9. 第五六七章(PTA复习)
  10. Hadoop的Mapreduce中Mapper的key和Map的key的区别
  11. 给程序员的忠告:九种不值得你追随的老板
  12. VMware下Ubuntu图形界面切换到命令行终端模式
  13. golang中apend_golang的append()为什么不会影响slice的地址?
  14. Windows核心编程_静态编译和动态编译的区别
  15. EMD 加 时频分析
  16. 结构光三维重建阶段性总结
  17. android 后台监听按键,Android监听home键的方法详解
  18. 线性动态规划-文件排版
  19. python pdfminer的功能_python:pdfminer接口测试
  20. 5.1 Runner构建优化

热门文章

  1. 前端学习(1189):事件基本使用
  2. 前端学习(685):循环的目的
  3. 来了解下计算机视觉的八大应用
  4. 致我的2018 你好2019
  5. Windows10远程报错:由于CredSSP加密Oracle修正
  6. 【Python练习题】程序5
  7. iOS用workspace和cocoapods管理多个项目
  8. 研究人员用数据统计的方法来做文学研究
  9. solr 配置中文分词器
  10. 谈谈java中遍历Map的几种方法