@ModelAttribute 是 Spring MVC 中的一个注解,它通常用于处理器方法(Controller中的方法)。使用 @ModelAttribute注解的方法会在请求处理方法执行之前被调用,它的作用是将一些数据绑定到模型(Model)中,使得这些数据可以在视图中进行展示或者处理。

具体来说,@ModelAttribute 可以有以下几种用途:

  1. 数据预处理:通过 @ModelAttribute 注解的方法,可以在请求处理方法执行之前预先处理一些数据,然后将处理后的数据绑定到模型中,供请求处理方法使用。
  2. 数据共享:@ModelAttribute 注解的方法可以用于多个请求处理方法之间共享数据。这意味着,多个请求处理方法可以通过调用同一个 @ModelAttribute 方法来获取相同的数据,避免重复的代码编写。
  3. 表单数据绑定:当处理表单提交时,@ModelAttribute 注解可以用于将表单提交的数据绑定到一个对象中,然后将这个对象绑定到模型中,方便在请求处理方法中进行处理。

总的来说,@ModelAttribute 注解提供了一种便捷的方式来预处理数据、共享数据以及进行表单数据绑定,使得请求处理方法可以更加专注于业务逻辑的处理,同时也提高了代码的重用性和可维护性。

import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
public class BaseController {
    private String userId;

    @ModelAttribute
    public void getUserId(HttpServletRequest request){
        userId = String.valueOf(request.getAttribute("user-id"));
    }

    public String getUserId(){
        return userId;
    }
}

可以调用getUserId即可获取用户创建人信息

@RestController
@RequestMapping("/hello/world")
@Validated
public class HelloController extends BaseController{
    @Resource
    private XXService xxService;

    @PostMapping("/create")
    @Operation(summary = "创建XXX")
    public CommonResult<String> addXXXX(@Valid @RequestBody XXCreateReqDTO createReqDTO) {
        createReqDTO.setCreatorId(getUserId());
        return success(xxService.createBizFlow(createReqDTO));
    }
}
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤