spring mvc响应数据方式

目录

    • 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/>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

boot栅格布局

栅格布局 使用boot必须熟练使用的三个知识点,媒体查询, 栅格布局,scss 为什么要使用栅格布局? 项目中做布局的方式 table布局csshtml布局栅格布局简单,容易控制语义正确,渲染效率高简单(类似于table)非常容易控制,渲染效率高,语义正确,支持响应式效率低,语义错误控制比较麻…

Math.random()

Math.random();Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,[0,1)返回指定范围的随机数[m-n)的公式 &#xff1a;Math.random()*(n-m)m&#xff1b;返回指定范围的随机数[m-n](区间不同)的公式 &#xff1a;Math.random()*(n-m1)m&#xff1b;eg…

spring mvc 接收页面数据

目录1. 基本类型的数据封装2. pojo&#xff08;bean)类型的封装3. 数组类型4. list集合类型1. 基本类型的数据封装 //http://localhost:8080/spring_mvc_01/user/save8?namebitqian&age19 RequestMapping(value "/save8") ResponseBody public void save8(Str…

css样式引入的优先级

css样式引入的优先级 1 位于<head/>标签里的<style/>中所定义的CSS拥有最高级的优先权。2、第二级的优先属性由位于 <style/>标签中的 import 引入样式表所定义。3、第三级的优先属性由<link/>标签所引入的样式表定义。4、第四级的优先属性由<link…

前端学习(1182):差值表达式

插值表达式语法&#xff1a;{{}} 使用时请注意以下几点&#xff1a; 插值表达式是vue框架提供的【指令】 插值表达式中 不可以写代码片段 会报错 属性节点中不能使用插值表达式&#xff0c;如果要为元素节点动态绑定数据&#xff0c;我们要用v-bind动态绑定属性&#…

单片机的 FIFO循环队列实现

转自&#xff1a;单片机的FIFO(先入先出)循环队列实现 // // 文件&#xff1a;config.h // #ifndef __CONFIG_H #define __CONFIG_H //这一段无需改动 //This segment should not be modified #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif type…

前端学习(1183):指令v-cloak

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

mvc自定义日期转换器

1. 配置编码过滤器 1&#xff0c; web.xml中设置配置spring mvc提供的编码过滤器&#xff0c;解决get/post提交过来的数据乱码问题 <!--配置编码过滤器--><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.spring…

link引入和@import的区别

本质上, 这两种方式都是加载CSS文件, 但还是存在着细微的差别 import 机制不同于link&#xff0c;link是加载页面前css加载完毕&#xff0c;import 是先读取文件再加载import是css2.0里的 ie5以上不支持用js控制dom时改变样式&#xff0c;只能用link&#xff0c;import不是dom…

重新理解javascript回调函数

把函数作为参数传入到另一个函数中。这个函数就是所谓的回调函数 经常遇到这样一种情况&#xff0c;某个项目的A层和B层是由不同的人员协同完成.A层负责功能funA,B层负责funcB。当B层要用到某个模块的数据,于是他对A层人员说,我需要你们提供满足某种需求的数据,你给我提供一个接…

前端学习(1184):数据绑定指令

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

struts2文件上传,下载

目录1. 页面表单2. 上传下载实现1. 页面表单 <HTML><HEAD><TITLE>上传下载图片</TITLE><meta http-equiv"Content-Type" content"text/html; charsetGBK"></head><body><form enctype"multipart/form-…

各个浏览器以及内核

//IE :trident 简写:-ms- //Firefox :Gecko 简写:-moz-//Google chrome:webkit/blink 简写:-webkit-//Sefari:webkit 简写:-webkit-//opera:presto 简写:-o-

Windows安装Python包下载工具pip遇到的问题

到Python的官网下载get-pip.py文件&#xff0c;然后按照说明进行安装。 在安装过程中&#xff0c;我遇到以下问题&#xff1a; cmd的codepage引起的编码错误&#xff0c;提示65001编码错误&#xff0c;通过chcp 936切换到默认的代码页可解决此问题。其次是权限的问题&#xff0…

前端学习(1185):数据响应式

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

Tomcat7.0+的JNDI问题

上次搭建springspringmvcmybatis框架时用的第三方连接池jar包&#xff0c;但是部署到tomcat中后访问没有问题&#xff0c;但是启动时报了个JNDI的错&#xff0c;我没用JNDI你给我报什么&#xff0c;fuck&#xff01;把错误贴到百度上搜索没搜到&#xff0c;更fuck&#xff0c;没…

spring mvc 实现单文件 || 多文件上传

文件上传1. pom依赖&#xff08;jar包&#xff09;2. 文件上传解析器配置3. 上传实现4. 下载||文件展示实现&#xff08;io流的实现&#xff09;项目下载地址https://github.com/sevenyoungairye/File-Upload1. pom依赖&#xff08;jar包&#xff09; <!-- common upload fi…

前端学习(1186):双向数据绑定

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

浏览器获取正确的scrollTop值

window.pageYOffset 被所有浏览器支持除了 IE 6, IE 7, IE 8, 不关doctype的事&#xff0c; 注IE9 开始支持此属性。 window.scrollY 被Firefox, Google Chrome , Safari支持 不关doctype的事, 注IE9 不支持此属性。 在&#xff08;quirk 模式&#xff09;的时候 document.body…