博客
关于我
Spring mvc @ModelAttribute
阅读量:797 次
发布时间:2023-04-03

本文共 1048 字,大约阅读时间需要 3 分钟。

SpringMVC4.3版本中新增的@ModelAttribute注解是一个非常强大的功能,它能够在方法执行之前执行一些逻辑,同时也可以用来获取指定数据给参数赋值。在SpringMVC中,@ModelAttribute注解主要有以下两种使用方式:

第一种情况,当@ModelAttribute注解用于方法上时,表示该方法会在控制器方法执行之前先执行。这种方式常用于初始化数据或准备参数,以确保后续逻辑能够顺利进行。

第二种情况,当@ModelAttribute注解用于参数上时,表示该参数会被赋值为指定的数据key对应的值。key可以是POJO对象的属性名称,也可以是Map结构中的键。这种方式非常有用,特别是当表单提交的数据不是完整的实体类数据时,可以利用数据库存储的原有数据来填充当前请求的字段。

以下是一个典型的代码示例:

@RequestMapping(value="/testModelAttribute")public String testModelAttribute(@ModelAttribute("abc") User user) {    System.out.println("testModelAttribute执行了...");    System.out.println(user);    return "success";}@ModelAttributepublic void showUser(@ModelAttribute("uname") String uname, Map
userMap) { System.out.println("showUser执行了..."); // 模拟从数据库查询用户信息 User user = new User(); user.setUname(uname); user.setAge(20); user.setDate(new Date()); userMap.put("abc", user);}

在这个代码示例中,第一个@ModelAttribute注解用于参数,表示将参数user的值取自key为"abc"的数据源。而第二个@ModelAttribute注解则用于方法,表示在控制器方法执行之前会自动调用showUser方法来获取或初始化数据。

这种设计模式在处理不完整的表单提交数据时非常有用,能够确保前端无需提交不必要的字段,系统仍能正常运行。

转载地址:http://awrfk.baihongyu.com/

你可能感兴趣的文章