栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC-Controller的返回值

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC-Controller的返回值

SpringMVC-处理器的返回值

文章目录
  • SpringMVC-处理器的返回值
    • 一、ModelAndView
    • 二、String
    • 三、返回对象类型
      • 1、直接返回String字符串
      • 2、直接返回对象
      • 3、直接返回List集合
      • 4、直接返回Map集合
    • 四、返回void
      • 1、转发
      • 2、重定向
      • 3、响应数据

一、ModelAndView

ResultController.java

package com.dapan.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("result")
public class ResultController {

    //返回ModelAndView : 返回值既有资源的跳转和数据的携带,可以选择该种方式
    @RequestMapping("test01")
    public ModelAndView test01() {
        ModelAndView mv = new ModelAndView();
        //携带数据
        mv.addObject("stuName", "赵依依"); //相当于request.setAttribute("stuName","赵依依");
        mv.setViewName("result");   //经过视图解析器InternalResourceViewResolver的处理,将逻辑视图名称加上前后缀变为物理资源路径 /result.jsp
        return mv;
    }
}

result.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    result


Result---------
test01---------${stuName}


web.xml




    
    
        
        contextConfigLocation
        
        classpath:applicationContext.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
    
        
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:springmvc.xml
        
        
        1
    
    
    
        springmvc
        /
    
    

    
        characterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        

        
            forceRequestEncoding
            true
        
        
            forceResponseEncoding
            true
        
    
    
        characterEncodingFilter
        /*   
    

springmvc.xml



    
    

    
    
    
    
        
        
    




    
    
    
    

applicationContext.xml



    
    

pom.xml



    4.0.0

    com.dapan
    SpringMVC01
    1.0-SNAPSHOT

    
    war

    
        11
        11
    
    
        
        
            org.springframework
            spring-webmvc
            5.2.10.RELEASE
        
        
        
            javax.servlet
            javax.servlet-api
            4.0.1
            provided
        
        
        
            com.fasterxml.jackson.core
            jackson-core
            2.10.0
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.10.0
        
    

    
        
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.0
                
                    11
                    11
                
            

            
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.2
                
                    /
                    8080
                
            
        
    

运行结果:

二、String

在ResultController中新增test02方法

//返回字符串
@RequestMapping("test02")
    public String test02(HttpServletRequest request) {
        Student student = new Student();
        student.setStuId(1001);
        student.setStuName("赵依依");
        student.setStuAge(18);
        request.setAttribute("student",student);    //存到request作用域中
        request.getSession().setAttribute("student",student);   //存在session作用域中,虽然同名,但是作用域不同,可以获取对象
        return "result";//经过视图解析器InternalResourceViewResolver的处理,将逻辑视图名称加上前后缀变为物理资源路径 /result.jsp
    }

result.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    result


Result---------
test01---------${stuName}
test02---RequestScope------${requestScope.student.stuId}------${requestScope.student.stuName}----${requestScope.student.stuAge}
test02---SessionScope------${sessionScope.student.stuId}------${sessionScope.student.stuName}----${sessionScope.student.stuAge}


运行结果:

三、返回对象类型 1、直接返回String字符串

在ResultController中新增test031()

 	//返回对象类型:Integer、Double、String、自定义类型、List、Map,
    // 返回的不是逻辑视图,而直接返回数据本身,一般搭配ajax使用,返回的数据是json格式
    //一定要与@ResponseBody一起使用
    @RequestMapping("test03-1")
    @ResponseBody
    public String test031() {
        return "result";
    }

运行结果:

2、直接返回对象

在ResultController中新增test032()

   @RequestMapping("test03-2")
    @ResponseBody	//一定要加@ResponseBody注解才可以
    public Student test032() {
        Student student = new Student();
        student.setStuId(1002);
        student.setStuName("钱二二");
        student.setStuAge(18);
        return student;
    }

运行结果:

3、直接返回List集合

在ResultController中新增test033()

 @RequestMapping("test03-3")
    @ResponseBody
    public List test033() {
        List studentList = new ArrayList<>();
        for (int i = 1; i <= 5; i++) {
            Student student = new Student();
            student.setStuId(1000+i);
            student.setStuName("孙珊珊"+i);
            student.setStuAge(18+i);
            studentList.add(student);
        }
        return studentList;
    }

运行结果:

4、直接返回Map集合

在ResultController中新增test034()

 @RequestMapping("test03-4")
    @ResponseBody
    public Map test034() {
        Map map = new HashMap<>();
        for (int i = 1; i <= 5; i++) {
            Student student = new Student();
            student.setStuId(1000+i);
            student.setStuName("李思思"+i);
            student.setStuAge(18+i);
            student.setRegisterTime(new Date());	//需要在实体类的registerTime属性上加上@JsonFormat(pattern = "yyyy-MM-dd")注解
            map.put(student.getStuId()+"", student);
        }
        return map;
    }

运行结果:

四、返回void 1、转发

在ResultController中新增test041()

	//没有返回 void 就是原生的servlet使用方式
    //转发 
    @RequestMapping("test04-1")
    public void test041(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/ok.jsp").forward(request,response);	//必须要给全路径,否则会找不到页面
    }

运行结果:

2、重定向

在ResultController中新增test042()

  //没有返回 void 就是原生的servlet使用方式
    // 重定向
    @RequestMapping("test04-2")
    public void test042(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.sendRedirect("/ok.jsp");//必须要给全路径,否则会找不到页面
    }

运行结果:

3、响应数据

在ResultController中新增test043()

  @RequestMapping("test04-3")
    public void test043(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        PrintWriter writer = response.getWriter();
        writer.write("返回void类型测试----直接返回字符串");
        writer.flush();
        writer.close();
    }

运行结果:

以上就是我所学习的处理器返回值的全部内容,欢迎各位大佬批评指针。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462202.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号