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

举报
执久呀 发表于 2022/10/22 21:14:20 2022/10/22
【摘要】 ​目录SpringMVC的数据响应SpringMVC的数据响应方式①页面跳转②回写数据2、返回ModelAndView对象方式1:直接new对象 方式2:写在方法里让SpringMVC创建方式3:model和view分开做方式4:通过HttpServletRequestSpringMVC的数据响应SpringMVC的数据响应方式风趣幽默的编程文章前言 – 床长人工智能教程https://ww...


目录



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、返回字符串形式

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

编辑

 返回带有前缀的字符串:

转发: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 %>"/>
    <meta charset="utf-8"/>
    <title>Insert title here</title>
</head>
<body>
kCandZH forever  ${username}
</body>
</html>

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

编辑

 方式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不常用

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。