springMVC 使用总结

1. springMVC 总结

  • springMVC相当于一个spring控制台应用
  • springMVC 当controller返回字符串时,实际上生成了一个默认的ModelAndView,映射方法中的Map 对象可以向默认ModelAndView 中添加数据
@Controller
public class HelloController {

    @GetMapping("/hello")
    public String handle(Model model) {
        model.addAttribute("message", "Hello World!");
        return "index";
    }
}

Model 也可以实现添加数据

  • 可以通过实现View接口来自定义视图,这时候要使用BeanNameViewResolver 解析器,可以通过order 指定解析器的优先级,order值越小,优先级越高

2. springMVC 常用注解

  1. @ModelAttribute 和 @SessionAttributes

    • @SessionAttributes 将数据保存到session域中,可以通过value 和 types 属性指定,这个注解只能放在类上,不能放在方法上
    • @ModelAttribute 标记的方法,会在每个目标方法执行之前被springMVC调用
    • springMVC确定目标方法POJO类型入参的过程:
      • 确定一个key
        • 若目标方法的POJO 类型没有使用@ModelAttribute 作为修饰,则key为POJO类名第一个字母的小写
        • 若使用了@ModelAttribute 来修饰,则key为@ModelAttribute注解的value属性值
      • 在implicitModel 中查找key对应的对象,若存在则作为入参传入
        • 若在implicitModel 标记的方法中在Map中保存过相应的key和POJO对象,则存在
      • 若implicitModel中不存在key对应的对象,则会检查当前Controller是否使用了@SessionAttributes 注解修饰,若使用了该注解,且@SessionAttributes 注解的value 属性值中包含了key,则会从HttpSession 中来获取key 所对应的value值,若存在则会直接传入目标方法的入参中,若不存在则会抛出异常
      • 若Controller 没有标识@SessionAttributes 注解或@SessionAttributes注解的value值中不包含key,则会通过反射来创建POJO 类型的参数,传入为目标方法的参数
      • springMVC 会把key 和 POJO 类型的对象保存到implicitModel 中,进而会保存到request中
  2. < mvc:view-controller/> 标签可以直接转发页面,而无需经过Controller,在这种情况下,需要加入< mvc:annotation-driven/> 标签才可以使用注解开发

  3. @PathVariable 注解

    @PathVariable 注解 用于REST 风格的架构

3. 其他

  • HiddenHttpMethodFilter 可用于将POST 请求转为DELETE 或 PUT请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值