SpringMVC数据页响应ModelAndView实现页面跳转

作者:执久呀 时间:2022-04-29 15:21:10 

SpringMVC的数据响应

SpringMVC的数据响应方式

①页面跳转

  • 直接返回字符串(如在一个方法中,return了一个"xxx.jsp",就会转发到那个jsp页面中,这就是直接返回字符串的形式)

  • 通过ModelAndView对象返回

②回写数据

  • 直接返回字符串(相当于在javaweb里的resp.getwrite(),print)

  • 返回对象或集合  

页面跳转

1、返回字符串形式

直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。

SpringMVC数据页响应ModelAndView实现页面跳转

 返回带有前缀的字符串:

转发:forward:/WEB_INF/views/index.jsp(forward可以省略不写)
重定向:redirect:/index.jsp

2、返回ModelAndView对象

方式1:直接new对象

//配置类,使用注解把这个类放到容器中
@Controller
@RequestMapping(value="KongChao")
public class userController {
   @RequestMapping(value = "/ZengHui2")
   public ModelAndView save2(){
       /*
       Model 模型 作用是封装数据
       View  视图 作用是展示数据
        */
       ModelAndView modelAndView=new ModelAndView();
       //设置模型数据(键值对,键为String,值为Oject)
       modelAndView.addObject("username", 1);
       //设置视图名字
       modelAndView.setViewName("KCandZH");//经过前后缀拼接就位/jsp/KCandZH.jsp
       return modelAndView;
   }
}

在jsp包下的KCandZH.jsp中

<html>
<head>
   <base href="<%=basepath %>" rel="external nofollow" />
   <meta charset="utf-8"/>
   <title>Insert title here</title>
</head>
<body>
kCandZH forever  ${username}
</body>
</html>

加上一个El表达式,这样浏览器访问localhost:8080/KongChao/ZengHui2,就会显示出kCandZH forever  1

SpringMVC数据页响应ModelAndView实现页面跳转

 方式2:写在方法里让SpringMVC创建

也可以不new对象的方式,在方法中直接写model对象,SpringMVC会自动帮你创建

//配置类,使用注解把这个类放到容器中
@Controller
@RequestMapping(value="KongChao")
public class userController {

@RequestMapping(value = "/ZengHui3")
   public ModelAndView save3( ModelAndView modelAndView){
       //设置模型数据(键值对,键为String,值为Oject)
       modelAndView.addObject("username", "babala");
       //设置视图名字
       modelAndView.setViewName("KCandZH");//经过前后缀拼接就位/jsp/KCandZH.jsp
       return modelAndView;
   }
}

方式3:model和view分开做

model是SpringMVC框架封装好的

//配置类,使用注解把这个类放到容器中
@Controller
@RequestMapping(value="KongChao")
public class userController {
   @RequestMapping(value = "/ZengHui4")
   public String save4(Model model){//是model
       //设置模型数据(键值对,键为String,值为Oject)
     model.addAttribute("username","曾慧");

return "KCandZH";//是view

}
}

方式4:通过HttpServletRequest

//配置类,使用注解把这个类放到容器中
@Controller
@RequestMapping(value="KongChao")
public class userController {
   @RequestMapping(value = "/ZengHui5")
   public String save5(HttpServletRequest request){//是model
       //设置模型数据(键值对,键为String,值为Oject)
       request.setAttribute("username","kckckc");

return "KCandZH";
   }
}

方式3和方式4的区别,model是SpringMVC封装好的,而HttpServletRequest是原生的javaweb,是由tomcat服务器产生的,这个产生的对象中有数据,有http请求的数据(请求行,请求体....),model对象则是空的。方式4不常用

来源:https://blog.csdn.net/weixin_60719453/article/details/125691433

标签:SpringMVC,页面跳转
0
投稿

猜你喜欢

  • Kotlin中常见内联扩展函数的使用方法教程

    2023-07-04 13:46:12
  • C# 中用 Sqlparameter 的两种用法

    2022-11-19 03:52:52
  • maven将项目打包上传到nexus私服的详细教程

    2023-04-18 16:20:22
  • Java 改造ayui表格组件实现多重排序

    2022-05-15 07:34:15
  • 十种JAVA排序算法实例

    2022-11-11 00:19:54
  • Apache和Tomcat有什么区别_动力节点Java学院整理

    2023-08-15 08:49:44
  • SpringBoot FreeWorker模板技术解析

    2023-08-09 09:14:39
  • java生成json数据示例

    2023-10-30 04:06:45
  • Java/Web调用Hadoop进行MapReduce示例代码

    2023-09-01 05:05:50
  • C++实现LeetCode(205.同构字符串)

    2023-06-21 04:06:54
  • Java8 Stream教程之collect()的技巧

    2023-05-01 00:45:15
  • C#基于UDP实现的P2P语音聊天工具

    2022-01-18 17:44:15
  • 深入探究Java线程与进程有哪些区别

    2023-05-06 13:26:03
  • java锁synchronized面试常问总结

    2023-08-01 05:11:37
  • spring boot2结合mybatis增删改查的实现

    2023-07-07 01:17:31
  • IDEA调试技巧条件断点实现步骤详解

    2023-11-24 16:02:42
  • Java实现扑克牌程序

    2023-11-11 12:09:52
  • java实现递归文件列表的方法

    2022-10-13 13:17:00
  • SpringBoot打Jar包在命令行运行流程详解

    2023-11-24 16:53:59
  • Java经典面试题汇总:Mybatis

    2021-09-20 07:42:44
  • asp之家 软件编程 m.aspxhome.com