1.Controller
package com.tz.controller;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import com.tz.domain.Course;
@Controller
@RequestMapping("/ModelAttribute")
public class ModelAttributeController {
@RequestMapping("/handle")
public String handle(Course c){
System.out.println("handle......");
System.out.println(c);
return "success";
}
// //有返回值类型
// @ModelAttribute//优先执行
// public Course show(String cname){
// /**
// * 当form表单中提交的数据不是完整的实体类型的数据时,需要保证,
// * 没有提交数据的字段还是使用
// * 数据库对象原来的数据
// *
// */
// System.out.println("show.....");
// //通过课程名称去数据库查询数据
// Course c = new Course();
// //模拟数据库中的值
// c.setCname(cname);
// c.setNumber(123);
// c.setPrice(11);
// c.setStock(123);
// c.setTeacher("coco");
// return c;
// }
//无返回值类型
@ModelAttribute//优先执行
public void show(String cname,Map<String,Course> map){
/**
* 当form表单中提交的数据不是完整的实体类型的数据时,需要保证,
* 没有提交数据的字段还是使用
* 数据库对象原来的数据
*/
System.out.println("show.....");
//通过课程名称去数据库查询数据
Course c = new Course();
//模拟数据库中的值
c.setCname(cname);
c.setNumber(123);
c.setPrice(11);
c.setStock(123);
c.setTeacher("coco");
map.put("c",c);
// return c;
}
}
2.request.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="handle?user=coco">访问</a><br/>
<form action="ModelAttribute/handle" method="post">
课程名称:
<input type="text" name="cname"><br/>
主讲老师:
<input type="text" name="teacher"><br/>
<hr/>
<input type="submit" value="提交">
</form>
</body>
</html>

SpringMVC之@SessionAttribute和@ModelAttribute
原文:https://www.cnblogs.com/luyuan-chen/p/11699763.html