首页 > 其他分享 >spring响应数据和结果视图

spring响应数据和结果视图

时间:2022-12-22 14:48:16浏览次数:31  
标签:return RequestMapping spring 视图 响应 jackson data public

返回值分类
1、返回字符串
Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址。

@RequestMapping(value="/hello")
public String sayHello() {
    System.out.println("Hello SpringMVC!!");
    // 跳转到XX页面
    return "success";
}

2、返回值是void
默认会跳转到@RequestMapping(value="/initUpdate") initUpdate的页面

@RequestMapping(value="/initAdd")
public void initAdd(HttpServletRequest request,HttpServletResponse response) throws Exception {
    System.out.println("请求转发或者重定向");
    // 请求转发
    // request.getRequestDispatcher("/WEB-INF/pages/add.jsp").forward(request, response);
    // 重定向
    // response.sendRedirect(request.getContextPath()+"/add2.jsp");
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    // 直接响应数据
    response.getWriter().print("你好");
    return;
}

3、返回值为ModelAndView

/**
* 返回ModelAndView对象
* 可以传入视图的名称(即跳转的页面),还可以传入对象。
* @return
* @throws Exception
*/
@RequestMapping(value="/findAll")
public ModelAndView findAll() throws Exception {
    ModelAndView mv = new ModelAndView();
    // 跳转到list.jsp的页面
    mv.setViewName("list");
    // 模拟从数据库中查询所有的用户信息
    List<User> users = new ArrayList<>();
    User user1 = new User();
    user1.setUsername("张三");
    user1.setPassword("123");
    users.add(user1);
    // 添加对象
    mv.addObject("users", users);
    return mv;
}

SpringMVC框架提供的转发和重定向
forward请求转发

/**
* 使用forward关键字进行请求转发
* "forward:转发的JSP路径",不走视图解析器了,所以需要编写完整的路径
* @return
* @throws Exception
*/
@RequestMapping("/delete")
public String delete() throws Exception {
    System.out.println("delete方法执行了...");
    // return "forward:/WEB-INF/pages/success.jsp";
    return "forward:/user/findAll";
}

redirect重定向

/**
* 重定向
* @return
* @throws Exception
*/
@RequestMapping("/count")
public String count() throws Exception {
    System.out.println("count方法执行了...");
    return "redirect:/add.jsp";
    // return "redirect:/user/findAll";
}

ResponseBody响应json数据
使用@RequestBody获取请求体数据

// 页面加载
// 页面加载
$(function(){
// 绑定点击事件
$("#btn").click(function(){
    $.ajax({
            url:"user/testJson",
            contentType:"application/json;charset=UTF-8",
            data:'{"addressName":"aa","addressNum":100}',
            dataType:"json",
            type:"post",
            success:function(data){
                alert(data);
                alert(data.addressName);
            }
        });
    });
});
/**
* 获取请求体的数据
* @param body
*/
@RequestMapping("/testJson")
    public void testJson(@RequestBody String body) {
    System.out.println(body);
}

使用@ResponseBody注解把JavaBean对象转换成json字符串,直接响应

// 页面加载
$(function(){
    // 绑定点击事件
    $("#btn").click(function(){
        $.ajax({
            url:"user/testJson",
            contentType:"application/json;charset=UTF-8",
            data:'{"addressName":"哈哈","addressNum":100}',
            dataType:"json",
            type:"post",
            success:function(data){
                alert(data);
                alert(data.addressName);
            }
        });
    });
});

@RequestMapping("/testJson")
public @ResponseBody Address testJson(@RequestBody Address address) {
    System.out.println(address);
    address.setAddressName("上海");
    return address;
}

json字符串和JavaBean对象互相转换的过程中,需要使用jackson的jar包

<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-core</artifactId>
    <version>2.9.0</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.0</version>
</dependency>

标签:return,RequestMapping,spring,视图,响应,jackson,data,public
From: https://www.cnblogs.com/yanshiheng/p/16998649.html

相关文章

  • SpringMVC实现文件上传
    1、在springmvc.xml中配置文件解析器<!--配置文件解析器对象,要求id名称必须是multipartResolver--><beanid="multipartResolver"class="org.springframework.web......
  • springmvc常用的注解
    RequestParam注解作用:把请求中的指定名称的参数传递给控制器中的形参赋值属性value:请求参数中的名称required:请求参数中是否必须提供此参数,默认值是true,必须提供/**......
  • 【JVM实战系列】「监控调优体系」实战开发arthas-spring-boot-starter监控你的微服务
    前提介绍相信如果经历了我的上一篇Arthas的文章[【JVM实战系列】「监控调优体系」针对于Alibaba-Arthas的安装入门及基础使用开发实战指南]之后,相信你对Arthas的功能和使......
  • springmvc的使用
    1、导入依赖<!--版本锁定--><properties><spring.version>5.0.2.RELEASE</spring.version></properties><dependencies><dependency><groupId>or......
  • springmvc请求参数
    请求参数中文乱码的解决在web.xml中配置Spring提供的过滤器类<!--配置过滤器,解决中文乱码的问题--><filter><filter-name>characterEncodingFilter</filter-name......
  • spring boot 配置Bean
    packagecom.example.demo.config;importcom.example.demo.entiy.User;importorg.springframework.context.annotation.Bean;importorg.springframework.context.an......
  • 使用 Spring 引导构建应用程序
    本指南提供了如何弹簧启动​帮助您加速应用程序开发。随着您阅读更多Spring入门指南,您将看到更多SpringBoot的用例。本指南旨在让您快速体验SpringBoot。如果您想创建......
  • SpringBoot入门三十一,多数据源的使用
    一、环境配置项目基本配置参考​​SpringBoot入门一,使用myEclipse新建一个SpringBoot项目​​,使用MyEclipse新建一个SpringBoot项目即可,数据源使用MyBatis。下面开始多数......
  • 如何基于 Spring Boot 快速开发一个 Dubbo 微服务应用
    Dubbo还提供了包括XML、API等多种启动与接入方式,更多开发方式和配置细节可参见配置手册。下载示例代码完整示例代码在dubbo-samples中。下载源码gitclone-bma......
  • 使用 Spring Data JPA 在关系数据库中存储和检索数据
    本指南将引导您完成构建应用程序的过程,该应用程序使用SpringDataJPA在关系数据库中存储和检索数据。您将构建什么您将构建一个应用程序,用于在基于内存的数据库中存储PO......