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

发布时间:2022-07-11 10:02

本文主要介绍了SpringMVC数据页响应ModelAndView实现页面跳转,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧!

SpringMVC的数据响应

SpringMVC的数据响应方式

①页面跳转

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

②回写数据

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

页面跳转

1、返回字符串形式

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

图片[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

图片[2] - 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不常用

文档下载:SpringMVC数据页响应ModelAndView实现页面跳转.doc文档

THE END
喜欢就支持一下吧