當有很多參數的時候,我們肯定不能用一個個參數,springmvc可以使用pojo對象來獲取這次請求中的所有參數,並且全部封裝到這個對象裏面。
既然如此我們來討論一下複雜的情況,就是類裏面還有類,比如學生類和班級類。
一個學生類裏定義了個班級變量。
我是xxx,我的班級是啥,班主任叫啥。
舉個例子
這裏注意啊,如果類裏有date類型,在該字段上加上註解 @DateTimeFormat(pattern=”yyyy-MM-dd”),這樣從前臺傳來值的時候,可以自動映射。
form表單
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>首頁</title>
</head>
<body>
<form action="/student/add.do" method="post">
username:<input type="text" name="username"/><br/>
sex:<input type="radio" name="sex" value="MALE"/>男生
<input type="radio" name="sex"value="FEMALE"/>女生<br/>
age:<input type="text" name="age"/><br/>
<!-- POJO支持級聯屬性,所以name屬性是如下的寫法,aClass.classId,意思就是有一個aClass的類,類裏面有classId屬性 -->
classId:<input type="text" name="aClass.classId"/><br/>
className:<input type="text" name="aClass.className"/><br/>
班主任:<input type="text" name="aClass.bzr"/>
<input type="submit" value="提交" />
</form>
</body>
</html>
controller層
@Controller
@RequestMapping("/student")
public class AddStudent {
public static final Logger log= LoggerFactory.getLogger(AddStudent.class);
@RequestMapping(value = "/add.do",method = RequestMethod.POST)
public String add(Student student, Model model){
model.addAttribute(student);
log.info(student.toString());
return "listStudent";
}
}
這裏面已經做了視圖映射,將會回到web-inf下面的view/listStudent.jsp頁面。
結果是:
tips:這裏性別用的枚舉類型,所以input輸入框中value一開始用的男女一直報400,注意要和枚舉值相同。