@ModelAttribute
是 Spring MVC 中的一个注解,它通常用于处理器方法(Controller中的方法)。使用 @ModelAttribute
注解的方法会在请求处理方法执行之前被调用,它的作用是将一些数据绑定到模型(Model)中,使得这些数据可以在视图中进行展示或者处理。
具体来说,@ModelAttribute
可以有以下几种用途:
- 数据预处理:通过
@ModelAttribute
注解的方法,可以在请求处理方法执行之前预先处理一些数据,然后将处理后的数据绑定到模型中,供请求处理方法使用。 - 数据共享:
@ModelAttribute
注解的方法可以用于多个请求处理方法之间共享数据。这意味着,多个请求处理方法可以通过调用同一个@ModelAttribute
方法来获取相同的数据,避免重复的代码编写。 - 表单数据绑定:当处理表单提交时,
@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博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤