重新复制一个save2()
方法来完成ModelAndView返回视图
返回的对象是ModelAndView
在方法中new一个ModelAndView对象,通过对象中的setViewName
设置返回视图的名称
通过addObject
可以设置模型的携带数据,jsp页面就可以接收到
启动服务器访问:http://localhost:8080/Spring_MVC_war_exploded/user/quick2路径就可以转发中success.jsp
页面上,并且携带的username
数据也可以输出页面
ModelAndView对象返回知识拓展
书写形式2,通过方法来接收ModelAndView对象并返回
原理:SpringMVC对对应的方法的参数,可以帮你进行相应的注入,解析发现参数有ModelAndView
需要springmvc来提供,那么springmvc就会为方法提供一个ModelAndView
对象【一种注入思想】
package com.zcl.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/quick3")
public ModelAndView save3(ModelAndView modelAndView){
modelAndView.addObject("username","书写形式2");
modelAndView.setViewName("success");
return modelAndView;
}
}
启动访问:http://localhost:8080/Spring_MVC_war_exploded/user/quick3
页面会输出Success书写形式2
**书写形式3:**模型与视图拆开
package com.zcl.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/quick4")
public String save4(Model model){
model.addAttribute("username","形式3");
return "success";
}
}
启动访问:http://localhost:8080/Spring_MVC_war_exploded/user/quick4
页面输出结果:Success形式3
**书写形式4:**视图HttpServletRequest
存储打子作用域里面
不常用,一般都是使用框架自己封装好的
@RequestMapping(value = "/quick5")
public String save5(HttpServletRequest request){
request.setAttribute("username","存储到作用域里面");
return "success";
}