• SpringMVC框架之Controller方法的返回值


    29d2500ba7a541b0bd257c0294698c99.jpeg

     

    其实选错了就选错了,人不可能每一步都正确的,很多事就算能重来一遍,以当时的心智和阅历,还是会做同样的选择,避免不了同样的结果,所以,不用去回头看,也不必批判当时的自己。 

     79a79f4d138f455b8a47ffd5dd95d7d7.jpeg

     

     

    首先先要完成对项目环境的搭配,下面我将直接上环境配置的代码,如果不理解可以到SpringMVC框架专栏取了解基础代码。如果您拥有一定的基础可以自行跳过环境配置等方面。

    第一步:导入各种依赖,在pom.xml文件中

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0modelVersion>
    6. <groupId>org.examplegroupId>
    7. <artifactId>SpringMVC-2artifactId>
    8. <version>1.0-SNAPSHOTversion>
    9. <packaging>warpackaging>
    10. <properties>
    11. <maven.compiler.source>14maven.compiler.source>
    12. <maven.compiler.target>14maven.compiler.target>
    13. properties>
    14. <dependencies>
    15. <dependency>
    16. <groupId>org.springframeworkgroupId>
    17. <artifactId>spring-webmvcartifactId>
    18. <version>RELEASEversion>
    19. dependency>
    20. <dependency>
    21. <groupId>javax.servletgroupId>
    22. <artifactId>javax.servlet-apiartifactId>
    23. <version>4.0.1version>
    24. dependency>
    25. <dependency>
    26. <groupId>javax.servlet.jspgroupId>
    27. <artifactId>javax.servlet.jsp-apiartifactId>
    28. <version>2.3.3version>
    29. dependency>
    30. dependencies>
    31. project>

    第二步:配置web.xml为项目搭建各种需要的处理器

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    6. <context:component-scan base-package="controller" >
    7. context:component-scan>
    8. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" id="handlerMapping">bean>
    9. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" id="handlerAdapter">bean>
    10. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="modelAndView">
    11. <property name="prefix" value="/jsp/">property>
    12. <property name="suffix" value=".jsp">property>
    13. bean>
    14. beans>

    第三步:创建一个网页文件:demo1.jsp,让我们注入的内容显示出来

    1. <%--
    2. Created by IntelliJ IDEA.
    3. User: lenovo
    4. Date: 2022/11/2
    5. Time: 22:33
    6. To change this template use File | Settings | File Templates.
    7. --%>
    8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    9. <html>
    10. <head>
    11. <title>Titletitle>
    12. head>
    13. <body>
    14. <h1>🐎${ma}h1>
    15. body>
    16. html>

     第四步:创建Controller类,并设置各种返回值(本篇文章的中心)

    第一种:返回ModelAndView对象

    1. @Controller
    2. public class controller_demo3 {
    3. //主要介绍返回值的介绍
    4. //第一种类型为:MOdelAndView类型的实现方法
    5. @GetMapping("/demo1")
    6. public ModelAndView demo1(){
    7. ModelAndView modelAndView = new ModelAndView("demo1");
    8. modelAndView.addObject("ma","不想睡醒的梦"); //给demo1.jsp中的属性ma赋值为不像睡醒的梦
    9. return modelAndView;
    10. }
    11. }

     

    输出结果:

    9d43bebe79384c1fa4b10e3c00d20042.png

    第二种:返回值void,通过各种方法进行跳转

    1. @Controller
    2. public class controller_demo3 {
    3. //主要介绍返回值的介绍
    4. //返回值为void的实现方法
    5. @GetMapping("/demo2")
    6. public void demo2_1(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    7. request.getRequestDispatcher("/jsp/demo1.jsp").forward(request,response); //通过服务器进行跳转到网页jsp文件夹下的demo1.jsp网页文件
    8. // 通过自动手动指定响应头进行重定向
    9. // 这种方法的结果与上面的结果相同
    10. // response.setStatus(403);
    11. // response.addHeader("Location","/jsp/demo1.jsp");
    12. }
    13. @GetMapping("/demo3")
    14. public void demo2_2(HttpServletResponse response) throws IOException {
    15. response.sendRedirect("/jsp/demo1.jsp"); //通过客户端进行跳转到指定的网页
    16. }

    输出结果:

    a05ba571eea846779d8bcaeb6199a5d5.png

     第三种:返回字符串类型

    1:

    1. @GetMapping("/demo4")
    2. public String demo3(Model model){
    3. model.addAttribute("ma","不想睡醒的梦");
    4. return "demo1"; //这里的返回值为网页名字demo1.jsp并通过Model为网页中属性进行赋值
    5. }

    输出结果:

    c18df31c9fc946f3a0cbe66f1b74a7b7.png

     2:retuen到指定网页

    1. @GetMapping("/demo5")
    2. public String demo4(){
    3. return "forward:/jsp/hello.jsp";
    4. }

    输出结果:指定网页显示内容

    75d7c81445f74513a5bb1518b4474dc0.png

     3:return:返回指定的内容

    1. @GetMapping("/demo7")
    2. @ResponseBody //这个注解表示返回值就是输入返回值,并没有其他的特殊含义
    3. public String demo6(){
    4. return "forward:/jsp/hello.jsp"; //服务器跳转
    5. }

     

    输出结果:

    e7c52181370043fab7f02520e732b7c5.png

    返回汉字:

    1. @GetMapping(value = "/demo8",produces = "text/html;charset=utf-8") //字符格式
    2. @ResponseBody
    3. public String demo7(){
    4. return "大碗大碗的"; //服务器跳转
    5. }

    输出结果:

    0e6becfeed904025b381f6096f3eeced.png

     

     

  • 相关阅读:
    计算机网络各层协议总结
    嵌入式软件组件经典架构与存储器分类
    MySQL 之 InnoDB存储引擎(二)
    操作系统-设备
    Transformer知识点
    Linux开发——shell脚本
    基本算法-冒泡排序
    git工具基本操作命令
    408计算机组成原理需要背的部分
    《A DECODER-ONLY FOUNDATION MODEL FOR TIME-SERIES FORECASTING》阅读总结
  • 原文地址:https://blog.csdn.net/m0_52479012/article/details/127697009