SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回

页面跳转设定

    //转发会把后端携带的request和Response发送到前端jsp,在jsp中可以直接使用其中的数据//重定向相当于页面重新刷新,不能够拿到后端给的request,Response

页面跳转之重定向与转发

配置视图解析器

在web.xml中配置视图解析器

<!--        配置视图解析器,方便访问jsp页面,并交给spring管理--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--       视图解析前缀(访问前缀)--><property name="prefix" value="/WEB-INF/pages/"/>
<!--       视图解析后缀(访问后缀)--><property name="suffix" value=".jsp"/></bean>

配置视图解析器后controller中方法的返回

    @RequestMapping("/forwardPages")public String test01(){//跳转页面,默认是转发模式//转发会把后端携带的request和Response发送到前端jsp,在jsp中可以直接使用其中的数据
//        return "forward:/WEB-INF/pages/success.jsp";/*WEB-IF下的页面必须转发才能访问,重定向访问不到,因为我们在spring-mvc.xml中配置了视图解析器,前缀,后缀都有*/return "success";}@RequestMapping("/redirectPages")public String test02(){//重定向到页面//重定向相当于页面重新刷新,不能够拿到后端给的request,Response//配置了视图解析器不能这样写了
//        return "redirect:/WEB-INF/pages/success.jsp";
//        return "redirect:/pages/success";return "";}@RequestMapping("success")public void test03(){//返回值为void的时候,他转发的地址为/WEB-INF/response/pages/success.jsp//会自动帮你把请求的地址和视图解析器拼接}

携带数据页面跳转

方式1:使用HttpServletRequest类型作为参数进行传递

@RequestMapping("/showPageAndData1")
public String showPageAndData1(HttpServletRequest request) {request.setAttribute("name","小付");
return "page";
}

方式2:使用Model类型作为参数进行数据传递

    //带着数据跳转页面@RequestMapping("/data")public String test04(Model model){User user = new User();user.setName("小花");user.setAge(18);//传递参数在jsp页面去(实际还是request域中)model.addAttribute("user",user);model.addAttribute("data","model");return "data";}

方式3:使用ModelAndView类型作为数据传递,将该对象作为返回值传递给调用者

    //带着数据跳转页面(推荐使用)@RequestMapping("/data/modelAndView")public ModelAndView test05(ModelAndView modelAndView){User user = new User();user.setName("小付");user.setAge(18);//传递参数在jsp页面去(实际还是request域中)modelAndView.addObject("data","modelAndView");modelAndView.addObject("user",user);//设置跳转的页面modelAndView.setViewName("data");return modelAndView;}

SpringMVC返回数据

方式1:使用Response对象完成数据返回

@RequestMapping("/showData1")
public void showData1(HttpServletResponse response) throws IOException {response.getWriter().print("message");
}

或者

@RequestMapping("/showData2")
@ResponseBody
public String showData2(){return "message";
}

返回JSON数据

在pom中导入json相关坐标的3个包

 <!--json相关坐标3个--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version></dependency></dependencies>

方式1:使用Response返回数据的简化格式,返回JSON数据

@RequestMapping("/showData3")
@ResponseBody
public String showData3() throws JsonProcessingException {ObjectMapper om = new ObjectMapper();
Book book = new Book();
book.setName("我爱java");
book.setPrice(88.8d);
return om.writeValueAsString(book);
}

返回JSON数据(对象)

方式2:使用SpringMVC提供的消息类型转换器将对象与集合数据自动类型转换成JSON数据(同样要导入json相关坐标的3个包)

    //带着Json数据跳转页面(推荐使用)@RequestMapping("/json")//这个注解代表return回去的是json字符串,加上这个注解,就不会提供页面跳转,只会响应数据@ResponseBodypublic User test06(){User user = new User();user.setName("小付");user.setAge(18);//@ResponseBody因为加了这个注解,和导入了json相关坐标的3个包,就会帮我们转成json返回到页面return user;}

返回JSON数据(集合)

 //带着Json数据跳转页面(推荐使用)@RequestMapping("/json/map")//这个注解代表return回去的是json字符串,加上这个注解,就不会提供页面跳转,只会响应数据@ResponseBodypublic Map<String,Object> test07(){User user = new User();user.setName("小付");user.setAge(18);User user2 = new User();user2.setName("小花");user2.setAge(18);Map<String, Object> map = new HashMap<>();map.put("xiaofu",user);map.put("xiaohua",user2);//@ResponseBody因为加了这个注解,和导入了json相关坐标的3个包,就会帮我们转成json返回到页面return map;}

Servlet相关接口

HttpServletRequest/HttpServletResponse/HttpSession

@RequestMapping("/servletApi")
public String servletApi(HttpServletRequest request,
HttpServletResponse response, HttpSession session){System.out.println(request);
System.out.println(response);
System.out.println(session);
request.setAttribute("name","小付");
System.out.println(request.getAttribute("name"));
return "page.jsp";
}


SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回相关推荐

  1. 微信小程序之页面带参跳转

    页面跳转参数传递有很多中方式,这里只说一种非常简单的. 一.单一参数传递 第一个页面跳转代码: Click: function () {console.log("我来啦")let ...

  2. ajax请求后无法实现指定页面跳转或带参数跳转

    问题:我们通过Ajax在前端对Controller的接口进行请求,处理完成后,无法通过Controller的return方法返回指定的页面. 原因:ajax只是局部刷新,所以不能在后台接口直接进行页面 ...

  3. VUE:组件间相互跳转、页面带参跳转

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 只是记录下用法: 从 A 页面跳转到 B 页面. 如下写法: A 页面跳转方式: 代码: getda ...

  4. JSP页面带参跳转html页面

    <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn="https://www ...

  5. Java框架-SpringMVC的应用(json数据交互、控制器方法返回值、文件上传)

    1. 搭建SpringMVC开发环境 1.1 创建项目,添加依赖 <?xml version="1.0" encoding="UTF-8"?> &l ...

  6. 微信小程序路由,带参数跳转及接收

    微信小程序的跳转形式有多种 1.wx.navigateTo 保留当前页面,跳转到应用内的某个页面,但是不能跳到 tabbar 页面 带参数跳转,以下都是一样. wx.navigateTo({url: ...

  7. SpringMVC响应使用案例(带数据页面跳转,快捷访问路径,返回json数据)

    页面跳转 转发(默认) @RequestMapping("/showPage1") public String showPage1() {System.out.println(&q ...

  8. 系列四、SpringMVC响应数据和结果视图

    2019独角兽企业重金招聘Python工程师标准>>> 项目结构如下 一.返回值分类 一 返回字符串 Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视 ...

  9. 如何通过SpringMVC框架响应JSON数据

    1. 通过SpringMVC框架响应JSON数据 在SpringMVC框架(含SpringBoot框架)中,当处理请求的方法之前添加了@ResponseBody后,或在控制器类之前使用的是@RestC ...

最新文章

  1. 北京智源行动计划发布,北京智源人工智能研究院揭牌成立
  2. PHP开发移动端接口
  3. Wordpress: contact form 7 表单内容同行
  4. VTK:图片之MarkKeypoints
  5. ps 替换文字_Python操作PPT实现自动查找替换
  6. 设置不显示用户名和主机名_谁说Excel中不可以有聚光灯效果:Excel高亮显示设置...
  7. SpringBoot实战(三):整合Mybatis配置多数据源
  8. 系统类配置(二)【深度学习装机详细教程-ubuntu16.04下安装cuda9.0+nvidia-384+cudnn7.1.4+tensorflow1.9。】
  9. 机器学习:使用matlab实现逻辑回归解决数字识别(多元分类)问题
  10. 【转载】金山词霸”屏幕取词技术揭密(讨论稿)
  11. PPPoE技术白皮书
  12. APP移动端自动化测试框架
  13. 我们一起写opengl程序
  14. 从接口、抽象类到工厂模式再到JVM来总结一些问题
  15. 程序员、架构师、技术经理、技术总监、CTO,怎么定位?
  16. ROS在同一节点同时订阅和发布消息
  17. 第七章·【第一次上岗:核桃编程】
  18. 面试官问“为什么应聘这个岗位”,应该如何回答?
  19. 苹果手机用计算机打不开怎么回事啊,苹果手机商店打不开怎么办
  20. 30岁转行程序员晚了吗?分享30岁转行的经历

热门文章

  1. 第二次冲刺 站立会议5
  2. C# 数据结构 之 堆栈和队列
  3. APNIC执委赵巍:IPv4向IPv6过渡再无退路
  4. 【转】使用ArcGIS Engine开发ArcGIS Server的胖客户端浏览程序
  5. 【luogu P1343 地震逃生】 题解
  6. DRUID连接池的实用 配置详解
  7. Laravel 日期时间处理包 Carbon 的应用
  8. NET快速信息化系统开发框架 V3.2 - “用户管理”主界面使用多表头展示、增加打印功能...
  9. 夺命雷公狗---PHP开发APP接口---1(手动编写json)
  10. ViewController类中得方法和属性的用途