Spring MVC @ModelAttribute
簡介
@ModelAttribute
具有如下三個作用:
綁定請求參數到指令對象:放在功能處理方法的入參上時,用于将多個請求參數綁定到一個指令對象,進而簡化綁定流程,而且自動暴露為模型資料用于視圖頁面展示時使用
暴露
@RequestMapping
方法傳回值為模型資料:放在功能處理方法的傳回值上時,是暴露功能處理方法的傳回值為模型資料,用于視圖頁面展示時使用
暴露表單引用對象為模型資料:放在處理器的一般方法(非功能處理方法)上時,是為表單準備要展示的表單引用對象,如注冊時需要選擇的所在城市等,而且在執行功能處理方法(
@RequestMapping
注解的方法)之前,自動添加到模型對象中,用于視圖頁面展示時使用
例子
暴露表單引用對象為模型資料的例子
@ModelAttribute
public User get(@RequestParam(required = false) String id) {
User entity = null;
if (StringUtils.isNotBlank(id)) {
entity = userService.get(id);
}
if (entity == null) {
entity = new User();
}
return entity;
}