业务场景:

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

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

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

代码片段:


提交的表单:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
	<h2>Hello World !</h2>
	
	<form action="home/update">
		uid:<input type="text" name="uid" value="123"/>
		<br/>
		uname:<input type="text" name="uname" value="ZhangSan"/>
		<br/>
		<input type="submit" value="修改">
	</form>
	<br/>
</body>
</html>

控制器:

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<String,Object> 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]


你可能感兴趣的文章