SpringMVC数据页响应ModelAndView之页面跳转

x33g5p2x  于2022-07-11 转载在 Spring  
字(2.5k)|赞(0)|评价(0)|浏览(714)

SpringMVC的数据响应

SpringMVC的数据响应方式

①页面跳转

②回写数据

2、返回ModelAndView对象

方式1:直接new对象

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

方式3:model和view分开做

方式4:通过HttpServletRequest

SpringMVC的数据响应

SpringMVC的数据响应方式

风趣幽默的编程文章

前言 – 床长人工智能教程

https://www.cbedai.net/gkbskc

①页面跳转

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

②回写数据

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

页面跳转

1、返回字符串形式

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

返回带有前缀的字符串:

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

2、返回ModelAndView对象

方式1:直接new对象

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

在jsp包下的KCandZH.jsp中

  1. <html>
  2. <head>
  3. <base href="<%=basepath %>"/>
  4. <meta charset="utf-8"/>
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. kCandZH forever ${username}
  9. </body>
  10. </html>

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

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

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

  1. //配置类,使用注解把这个类放到容器中
  2. @Controller
  3. @RequestMapping(value="KongChao")
  4. public class userController {
  5. @RequestMapping(value = "/ZengHui3")
  6. public ModelAndView save3( ModelAndView modelAndView){
  7. //设置模型数据(键值对,键为String,值为Oject)
  8. modelAndView.addObject("username", "babala");
  9. //设置视图名字
  10. modelAndView.setViewName("KCandZH");//经过前后缀拼接就位/jsp/KCandZH.jsp
  11. return modelAndView;
  12. }
  13. }

方式3:model和view分开做

model是SpringMVC框架封装好的

  1. //配置类,使用注解把这个类放到容器中
  2. @Controller
  3. @RequestMapping(value="KongChao")
  4. public class userController {
  5. @RequestMapping(value = "/ZengHui4")
  6. public String save4(Model model){//是model
  7. //设置模型数据(键值对,键为String,值为Oject)
  8. model.addAttribute("username","曾慧");
  9. return "KCandZH";//是view
  10. }
  11. }

方式4:通过HttpServletRequest

  1. //配置类,使用注解把这个类放到容器中
  2. @Controller
  3. @RequestMapping(value="KongChao")
  4. public class userController {
  5. @RequestMapping(value = "/ZengHui5")
  6. public String save5(HttpServletRequest request){//是model
  7. //设置模型数据(键值对,键为String,值为Oject)
  8. request.setAttribute("username","kckckc");
  9. return "KCandZH";
  10. }
  11. }

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

相关文章