天天看點

Spring MVC @ModelAttributeSpring MVC @ModelAttribute簡介例子

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;
}