重定向和转发
redirect(重定向,url改变)
重定向在浏览器上进行,因为浏览器不能访问WEB-INF目录下的东西,所以使用重定向时,不能重定向到该目录下,也定向不到。使用return "redirect:*";时,视图解析器失效
forward(转发,url不变)
- SpringMVC默认使用forward,可以转发到WEB-INF目录下的文件。
- 当有视图解析器时,使用
return "forward:*";时,视图解析器失效
样例
- 视图解析器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="resourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
- controller
@Controller
public class RedirectForward {
@GetMapping( "/add")
public String test(Model model){
model.addAttribute("msg","redirect");
return "redirect:/f/h.html";
}
@GetMapping( "/t/add")
public String test1(Model model){
model.addAttribute("msg","redirect");
return "redirect";
}
@GetMapping( "/t1/add")
public String test2(Model model){
model.addAttribute("msg","redirect");
return "forward:/WEB-INF/jsp/redirect.jsp";
}
}
接收参数和数据回显
样例
直接用
使用@RequestParam
如何传对象
- 假设传递的是一个对象,匹配对象中的字段名;如果名字一致则OK,否则,匹配不到,没传到的则为
null
几种Model的区别
- Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解;
- ModelMap继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承LinkedMap的方法和特性;
- ModelAndview 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。