您的位置:首页 > 编程语言 > Java开发

springmvc@ModelAttribute注解

2017-11-23 20:18 381 查看
package com.atguigu.springmvc.handlers;
import java.util.Arrays;
import java.util.Date;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.SessionAttributes;
import com.atguigu.springmvc.entities.User;
import com.sun.tracing.dtrace.ModuleAttributes;
@Controller
@SessionAttributes(value={"user"})
public
class
Te1 {
    @ModelAttribute
    public User getUser(@RequestParam("id") String
id){
        Useruser= newUser();
        if(id!=null && !"".equals(id)){
            user.setEmail("10291009@qq.com"+id);
        }
        return
user;
    }
   //测试@SessionAttribute
   @RequestMapping("/updateUser")
   publicString updateUser(@ModelAttribute("user")User
user){
        return
"demo1";
   }
}
@ModelAttribute:在方法上,HandlerAdapter每次执行目标方法(updateUser)前

都会执行@ModelAttribute标注的方法即getUser,

在执行完getUser方法后会将 User类首字母小写存入model域中,并存入session域中,但如果此时在session域中

已经存在了user,那么此时是先将session域的user取出来,进行非空属性更新(并不会将新建user地址值存给session的user),

 

然后执行@ModelAttribute("user")User
user  从session域中取出user
,将参数user对

session域的user进行非空属性更换,将更新后的user放入
model和session域中

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: