页面跳转

返回字符串形式

  • 直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。
  1. @RequestMapping("/quick")
  2. public String quickMethod(){
  3. return "index";
  4. }
  1. <property name="prefix" value="/WEB-INF/views/" />
  2. <property name=“suffix” value=".jsp" />

经过视图解析器(存疑?)的处理最终地址变为

: /WEB-INF/views/index.jsp

返回带有前缀的字符串:

转发:forward:/index

重定向:redirect:/index

返回ModelAndView对象

  1. @RequestMapping("/quick2")
  2. public ModelAndView quickMethod2(){
  3. ModelAndView modelAndView = new ModelAndView();
  4. modelAndView.setViewName("redirect:index.jsp");
  5. return modelAndView;
  6. }
  7. @RequestMapping("/quick3")
  8. public ModelAndView quickMethod3(){
  9. ModelAndView modelAndView = new ModelAndView();
  10. modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
  11. return modelAndView;
  12. }

向request域存储数据

在进行转发时,往往要向request域中存储数据,在jsp页面中显示,那么Controller中怎样向request域中存储数据呢?

1.通过SpringMVC框架注入的request对象setAttribute()方法设置

  1. @RequestMapping("/quick")
  2. public String quickMethod(HttpServletRequest request){
  3. request.setAttribute("name","zhangsan");
  4. return "index";
  5. }

2.通过ModelAndView的addObject()方法设置

  1. @RequestMapping("/quick3")
  2. public ModelAndView quickMethod3(){
  3. ModelAndView modelAndView = new ModelAndView();
  4. modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
  5. modelAndView.addObject("name","lisi");
  6. return modelAndView;
  7. }

回写数据

直接返回字符串

  • 通过jackson转换json格式字符串,回写字符串
  1. @RequestMapping("/quick7")
  2. @ResponseBody //通过此注解告知SpringMVC框架,方法返回的字符串不是跳转是直接在http响应体中返回。
  3. public String quickMethod7() throws IOException {
  4. User user = new User();
  5. user.setUsername("zhangsan");
  6. user.setAge(18);
  7. ObjectMapper objectMapper = new ObjectMapper();
  8. String s = objectMapper.writeValueAsString(user);
  9. return s;
  10. }

返回对象或集合

  1. @RequestMapping("/quick8")
  2. @ResponseBody
  3. public User quickMethod8() throws IOException {
  4. User user = new User(); user.setUsername("zhangsan");
  5. user.setAge(18);
  6. return user;
  7. }

在方法上添加@ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多,因此,我们可以使用mvc的注解驱动代替上述配置。

  1. <!--mvc的注解驱动-->
  2. <mvc:annotation-driven/>

在 SpringMVC 的各个组件中,处理器映射器处理器适配器视图解析器称为 SpringMVC 的三大组件。

使用<mvc:annotation-driven>自动加载 RequestMappingHandlerMapping(处理映射器)和RequestMappingHandlerAdapter( 处 理 适 配 器 ),可用在Spring-xml.xml配置文件中使用

<mvc:annotation-driven>替代注解处理器适配器的配置。

同时使用<mvc:annotation-driven>默认底层就会集成jackson进行对象或集合的json格式字符串的转换。

SpringMVC 数据响应的更多相关文章

  1. springmvc 怎么响应json数据

    springmvc 怎么响应json数据@Controller@RequestMapping("/items") class ItemsController{  @RequestM ...

  2. Java框架之SpringMVC 03-RequestMapping-请求数据-响应数据

    SpringMVC SpringMVC是一种轻量级的.基于MVC的Web层应用框架. 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口. 采用了松散耦合可插拔组件结构,比 ...

  3. Spring系列 SpringMVC的请求与数据响应

    Spring系列 SpringMVC的请求与数据响应 SpringMVC的数据响应 数据响应的方式 y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp页面来实现 Suc ...

  4. Spring(六)SpringMVC的数据响应

    SpringMVC的请求和响应 SpringMVC的数据响应 01-SpringMVC的数据响应-数据响应方式(理解) 1)    页面跳转 直接返回字符串 通过ModelAndView对象返回 2) ...

  5. 项目中整合第三方插件与SpringMVC数据格式化关于ip地址

    一.Bootstrap 响应式按钮 <div calss="col-sm-2"> <button class="btn btn-default btn- ...

  6. 解决ajax请求(SpringMVC后台)响应415/400/405错误

    解决ajax请求(SpringMVC后台)响应415/400/405错误 后端代码 bean public class user { private String username; private ...

  7. Java开发学习(二十六)----SpringMVC返回响应结果

    SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户. 比如:根据用户ID查 ...

  8. Legolas工业自动化平台入门(二)数据响应动作

    在上一篇文章Legolas工业自动化平台入门(一)搭建应用里,我们简单地提到了"动作"的概念.不清楚的童鞋不要着急,这篇我们就来介绍如何在Legolas平台上添加动作,并应用动作. ...

  9. SpringMVC数据验证

    SpringMVC数据验证——第七章 注解式控制器的数据验证.类型转换及格式化——跟着开涛学SpringMVC 资源来自:http://jinnianshilongnian.iteye.com/blo ...

随机推荐

  1. Python中管理数据库

    前言:Python中是利用MySQL模块和数据库之间建立联系. MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL ...

  2. Python中的多线程编程

    前言: 线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元) 它被包含在进程之中,是进程中的实际运作单位 一个进程中可以并发多个线程每条线程并行执行不同的任务 (线程是进程中的一个实体,是 ...

  3. rsync 服务搭建

    rsync 服务搭建 服务端部署操作内容: 创建rsync用户和用户组 eg: useradd -s /sbin/nologin -M rsync 创建需要备份的指定目录,并修改权限 eg: mkdi ...

  4. 20210715 noip16

    考场 乍一看 T1 像是二分答案,手玩样例发现可以 \(O(k^2)\) 枚举点对,贪心地更新答案,完了?有点不信,先跳了 T2 的形式有点像逆序对,但没啥想法 T3 的式子完全不知道如何处理,一看就 ...

  5. Python - 面向对象编程 - __call__()

    __call()__ 的作用 使得类实例对象可以像普通函数那样被调用 实际栗子 from typing import Callable class PoloBlog: def __init__(sel ...

  6. Alex网络结构

    AlexNet网络结构   网络包含8个带权重的层:前5层是卷积层,剩下的3层是全连接层.最后一层全连接层的输出是1000维softmax的输入,softmax会产生1000类标签的分布网络包含8个带 ...

  7. 洛谷P1094——纪念品分组(简单贪心)

    https://www.luogu.org/problem/show?pid=1094 题目描述 元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作.为使得参加晚会的同学所获得 的纪念品价值相对均 ...

  8. scrapy各种持久化存储的奇淫技巧

    理论 磁盘文件: 基于终端指令 1)保证parse方法返回一个可迭代类型的对象(存储解析到的页面内容) 2)使用终端指令完成数据存储到指定磁盘文件中的操作,如:scrapy crawl 爬虫文件名称 ...

  9. Linux系列(17) - >、>>的用法

    适用场景 输出重定向,将命令结果写入文件当中 差异化 >:覆盖原文件内容 >>:追加文件内容 格式 [命令] > [文件名]:将[命令]的结果覆盖到[文件名]该文件中,如果目录 ...

  10. 深入HTML5第三天

    表单form属性:method="get|post" action="url": 特性:不写样式是没有样式的 input:属性:type="text| ...