springMVC的配置:
@Configuration
@ComponentScan(basePackages={"com.czxy.demo1.controller"})
public class MVCConfiguration {
/**
* 设置了一个视图解析器,交给spring管理
* @return
*/
@Bean
public InternalResourceViewResolver getInternalResourceViewResolver(){
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
//设置前缀
internalResourceViewResolver.setPrefix("/");
//设置后缀
internalResourceViewResolver.setSuffix(".jsp");
return internalResourceViewResolver;
}
}
Demo1Controller:
@RequestMapping("/run5")
public String run5(){
System.out.println("run5");
// return "/demo5.jsp";
//视图解析器会自动补全为: /demo5.jsp
return "demo5";
}
小结:
视图解析器: 控制器的返回值会经过视图解析器,自动补全 前缀和 后缀。
代码实现
Demo1Controller
@RequestMapping("/run6")
public String run6(){
System.out.println("run6");
//绕开视图解析器方式一:重定向
// return "redirect:/demo6.html";
//绕开视图解析器方式二:完整版的请求转发
return "forward:/demo6.html";
}
小结:
绕开视图解析器:
重定向: return “redirect:/路径”;
完整版的请求转发:return “forward:/路径”;
返回字符串
三种:
使用视图解析器(请求转发): return “资源名”;
绕开视图解析器-请求转发:return “forward:/路径”;
绕开视图解析器-重定向:return “redirect:/路径”;
返回ModelAndView**(SpringMVC特有)******
/*
* 需要跳转到demo5.jsp上 ModelAndView
* */
@RequestMapping("/run7")
public ModelAndView run7(){
ModelAndView mav = new ModelAndView();
//设置request作用域传递参数 相当于request.setAttribute
mav.addObject("uname","煌煌");
//设置跳转路径
mav.setViewName("demo5");//使用视图解析器,请求转发
// mav.setViewName("forward:/demo5.jsp");//绕开视图解析器,请求转发
// mav.setViewName("redirect:/demo5.jsp");//绕开视图解析器,重定向
return mav;
}
ModelAndView:springMVC专门用来封装作用域数据,并且跳转页面
@RequestMapping放在类名上边,设置请求前缀
@RequestMapping放在方法名上边,设置方法对应请求路径。
完整请求:前缀 + 请求路径
/*
* /项目名/d1/run8.action
* /项目名/d1/8run.action
* /项目名/d1/run88.action
* */
@RequestMapping(value = {"/run8","/8run","/run88"})
public String run8(){
System.out.println("run8");
return "index";
}
默认情况下,不会限定请求方式,get****/post********或其他方式均可访问****
/*
该方法的请求方式,仅允许POST方式
* */
@RequestMapping(value = {"/run9"},method = {RequestMethod.POST})
public String run9(){
System.out.println("run8");
return "index";
}
视图解析器:
在控制器执行之后,为控制器补全前缀和后缀。
Controller方法的返回值:
demo1.jsp
使用视图解析器:return “demo1”;
绕开视图解析器:
请求转发:return “forward:/demo1.jsp”;
重定向:return “redirect:/demo1.jsp”;
ModelAndView:封装请求数据,跳转页面
addObject(); 向request作用域保存键值对
setViewName(); 设置跳转路径。
@RequestMapping:为方法/类设置访问路径。
@RequestMapping(value={“/run1”,”/1run”})
看完恭喜你,又知道了一点点!!!
**你知道的越多,不知道的越多! **
**~感谢志同道合的你阅读, 你的支持是我学习的最大动力 ! ****加油 ,陌生人一起努力,共勉!!**