Spring boot @ModelAttribute标注的实现

 更新时间:2020年01月07日 11:49:43   作者:麦穗儿  
这篇文章主要介绍了Spring boot @ModelAttribute标注的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

@ModelAttribute可以注释方法和参数

@ModelAttribute注释方法

@ModelAttribute注释方法该方法会在controller的所有方法之前被执行。通过Model将value设定到相应的key中。

(1)注释返回值为void的方法,通过传入Model添加属性值

@RestController
@RequestMapping("/usrcontroller")
public class UserController {

  UserService us = new UserService();

  @ModelAttribute
  public void findUserById(@RequestParam Long uid, Model model) {
    model.addAttribute("user", us.getUser(uid));
  }

  @GetMapping(path="/getuser")
  @ResponseBody
  public String getUser(Model model) {
    User u = (User)(model.getAttribute("user"));
    System.out.println(u.name);
    return u.name;
  }
}

(2)注释返回值为具体类型的。通过添加属性(属性名为返回值的头字母小写,例如返回值为Group,属性为group)将返回值添加
实际结果类似与model.addAttribute("returnvaluename", var);

@RestController
@RequestMapping("/groupcontroller")
public class GroupController {
  @ModelAttribute
  public Group getGroupId(@RequestParam Long gid) {
    Group g = new Group();
    g.groupName = "group_"+gid;
    g.groupId = gid;

    return g;
    //same as Model.addAttribute("group", g)
  }

  @GetMapping(path="/getgroup")
  @ResponseBody
  public String getGroup(Model model) {
    Group g = (Group)model.getAttribute("group");
    String gStr = "group(id:" + g.groupId + "," + g.groupName + ")";
    System.out.println(gStr);

    return gStr;
  }
}

(3)指定属性的名称

//类似于Model.addAttribute("defaultuser", User)
@ModelAttribute("defaultuser")
public User createDefaultUser() {
  return new User("defaultUsr","SH", 22, true);
}

@GetMapping(path="/checkdefaultuser")
@ResponseBody
public String checkDefaultUser(@ModelAttribute("defaultuser") User dfUsr) {
  String dfUsrStr = "Default user("+dfUsr.name + "," + dfUsr.address + "," + dfUsr.age + "," + dfUsr.isMan + ")";

  System.out.println(dfUsrStr);

  return dfUsrStr;
}

@ModeAttribute注释方法的参数

@ModelAttribute("defaultuser")
public User createDefaultUser() {
  return new User("defaultUsr","SH", 22, true);
}

@GetMapping(path="/checkdefaultuser")
@ResponseBody
public String checkDefaultUser(@ModelAttribute("defaultuser") User dfUsr) {
  String dfUsrStr = "Default user("+dfUsr.name + "," + dfUsr.address + "," + dfUsr.age + "," + dfUsr.isMan + ")";
  System.out.println(dfUsrStr);
  return dfUsrStr;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • JPA中JpaRepository接口的使用方式

    JPA中JpaRepository接口的使用方式

    这篇文章主要介绍了JPA中JpaRepository接口的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 关于使用MyBatis简化JDBC开发和解决SQL语句警告的问题

    关于使用MyBatis简化JDBC开发和解决SQL语句警告的问题

    这篇文章主要介绍了关于使用MyBatis简化JDBC开发和解决SQL语句警告的问题,如果idea和数据库没有建立链接,idea不识别表的信息,就会出现SQL语句的警告,需要的朋友可以参考下
    2023-05-05
  • Java泛型机制与反射原理相关知识总结

    Java泛型机制与反射原理相关知识总结

    今天带大家学习的是关于Java进阶的相关知识,文章围绕着Java泛型机制与反射原理展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 一文详解gRPC快速整合SpringCloud

    一文详解gRPC快速整合SpringCloud

    这篇文章主要为大家介绍gRPC快速整合SpringCloud的实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java中Logger定义的3种方式及最佳实践

    Java中Logger定义的3种方式及最佳实践

    这篇文章主要介绍了Java中三种常见的Logger定义方式及其优缺点,同时文章还讨论了Logger的命名和访问修饰符的最佳实践,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-02-02
  • Java模拟QQ实现聊天互动程序

    Java模拟QQ实现聊天互动程序

    这篇文章主要介绍了如何利用Java语言模拟QQ实现一个简易的聊天互动程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-06-06
  • Java LockSupport常用方法的源码分析

    Java LockSupport常用方法的源码分析

    这篇文章主要为大家详细介绍了Java LockSupport类中的方法和部分源码,以及面试常问到的一个小问题,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-02-02
  • java 中死锁问题的实例详解

    java 中死锁问题的实例详解

    这篇文章主要介绍了java 中死锁问题的实例详解的相关资料,希望通过本文大家能够理解掌握死锁的问题,需要的朋友可以参考下
    2017-09-09
  • Java JUnit 使用及常用注解

    Java JUnit 使用及常用注解

    JUnit是Java开发中必不可少的测试框架之一,它可以帮助您编写高质量、可维护的单元测试,本文介绍了JUnit的基本用法、常用注解、测试套件和参数化测试等内容,希望对您的测试工作有所帮助,感兴趣的朋友一起看看吧
    2023-12-12
  • idea 离线安装lombok插件的方法步骤(图文)

    idea 离线安装lombok插件的方法步骤(图文)

    这篇文章主要介绍了idea 离线安装lombok插件的方法步骤(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01

最新评论