attribute java 从_springmvc-@ModelAttribute在控制器的方法执行前调用

业务场景:

一张表结构为:用户id,姓名,年龄。用户提交表单修改数据时候只是修改姓名的时候,后台要先从数据库获取原始数据到实体,然后修改用户名,最后保存数据库。

原始数据               [uid=123, uname=说易事, age=25]

修改数据库的数据 [uid=123, uname=ZhangSan, age=25]

代码片段:

提交的表单:

pageEncoding="UTF-8"%>

html>

Hello World !

uid:

uname:

控制器:package com.shuoeasy.springmvc;

import java.util.Map;

import org.springframework.stereotype.Controller;

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

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

@RequestMapping("/home")

@Controller

public class Home {

/**

* 第一步:先获取数据库的数据(这里不是直接给页面请求的,提供给springmvc使用而已)

* 被@ModelAttribute注释的方法会在此controller每个方法执行前被执行

* @param uid

* @param map

*/

@ModelAttribute

private void getUser(@RequestParam(value="uid",required=false) Integer uid,

Map map){

if(uid != null){

// 模拟从数据库获取数据

User u = new User();

u.setUid(123);

u.setUname("说易事");

u.setAge(25);

map.put("user", u);

System.out.println("数据库数据 User=" + u);

}

}

/**

* 第二步:修改用户信息,真正请求的地址

* 路径 : home/update

*/

@RequestMapping("/update")

public String showPage(User user){

System.out.println("整理后数据 User=" + user);

// 写入数据库代码略

return "home_index";

}

}

控制台输出啊:数据库数据 User=User [uid=123, uname=说易事, age=25]

整理后数据 User=User [uid=123, uname=ZhangSan, age=25]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值