SpringMVC接受引數
阿新 • • 發佈:2018-12-29
1.使用原生的request接受引數
一個連結傳送請求並附帶引數:
<a href="${pageContext.request.contextPath}/first?id=1&name=itlike">請求1</a>
controller:
@RequestMapping("/first") public String myform(HttpServletRequest request){ String id = request.getParameter("id"); String name = request.getParameter("name"); System.out.println(name); System.out.println(id); return "/second.jsp"; }
[email protected]及用法
當請求的引數名稱和處理器的形參名稱一致時,會自動將引數繫結,並做型別轉換
連結及引數:
<a href="${pageContext.request.contextPath}/second?id=1&name=itlike">請求2</a>
controller:
@RequestMapping("/second") public String myform2(Integer id,String name){ System.out.println(id+" "+name); return "/second.jsp"; }
當引數名可以不一致,可以使用requestParam()改變引數名稱
controller:
@RequestMapping("/second")
public String myform2(@RequestParam(value = "id",required = false,defaultValue = "100") Integer ida, String name){
System.out.println(ida+" "+name);
return "/second.jsp";
}
required 表示該引數是否必須傳遞 預設值是true
defaulValue 設定預設值 當required是false時,沒傳值時該引數為設定的預設值 當required是true時,不傳值也不會報錯,使用預設值
3.JavaBean接受引數
要求表單當中的引數名和實體類中的屬性欄位保持一致 ,這樣可自動將引數封裝在物件中
連結表單:
<form action="${pageContext.request.contextPath}/myform">
user:<input type="text" name="user_name"><br/>
age:<input type="text" name="user_age"><br/>
<input type="submit" value="提交">
</form>
實體類:
public class User {
private String user_name;
private String user_age;
}
controller:
@RequestMapping("/myform")
public String myform3(User user){
System.out.println(user);
return "second.jsp";
}
4.使用陣列接受引數
當連結中引數的屬性名一樣時,可使用陣列接受引數 name相同的引數會放在一個數組裡
連結表單:
<form action="${pageContext.request.contextPath}/myform1">
user:<input type="text" name="name"><br/>
age:<input type="text" name="name"><br/>
<input type="submit" value="提交">
</form>
controller:
@RequestMapping("/myform1")
public String myform4(String name[]){
System.out.println(Arrays.toString(name));
return "second.jsp";
}
也可以在實體的屬性欄位定義陣列,接受引數依然使用JavaBean的方法接受,陣列便會被封裝到物件裡
連結表單:
<form action="${pageContext.request.contextPath}/myform1">
user:<input type="text" name="user_name"><br/>
age:<input type="text" name="user_age"><br/>
hobby:<input type="checkbox" name="hooby" value="籃球">籃球
<input type="checkbox" name="hooby" value="籃球">乒乓球
<input type="checkbox" name="hooby" value="籃球">足球<br/>
<input type="submit" value="提交">
</form>
實體類:
public class User {
private String user_name;
private String user_age;
private String hooby[];
}
controller:
@RequestMapping("/myform1")
public String myform4(User user){
System.out.println(user);
return "second.jsp";
}
5.包裝類接受引數
定義兩個實體類,一個User類 一個Dog類 Dog是User的一個屬性
public class User {
private String user_name;
private String user_age;
private String hooby[];
private Dog dog;
}
public class Dog {
private String name;
private String color;
}
連結及引數設定:
<form action="${pageContext.request.contextPath}/myform2">
user:<input type="text" name="user_name"><br/>
age:<input type="text" name="user_age"><br/>
hobby:<input type="checkbox" name="hooby" value="籃球">籃球
<input type="checkbox" name="hooby" value="籃球">乒乓球
<input type="checkbox" name="hooby" value="籃球">足球<br/>
------寵-----物-------<br/>
寵物名稱:<input type="text" name="dog.name"><br/>
寵物顏色:<input type="text" name="dog.color"><br/>
<input type="submit" value="提交">
</form>
包裝類的屬性設定,是屬性名.包裝類的屬性名
controller:
@RequestMapping("/myform2")
public String myform4(User user){
System.out.println(user);
return "second.jsp";
}
6.List集合接受引數
需求:當一個User有多個狗時,可以在User中定義一個list<Dog>
實體類定義:
public class User {
private String user_name;
private String user_age;
private String hooby[];
private Dog dog;
private List<Dog> dogs;
}
public class Dog {
private String name;
private String color;
}
表單及引數設定 著重對於list集合每個物件的引數設定
<form action="${pageContext.request.contextPath}/myform2">
user:<input type="text" name="user_name"><br/>
age:<input type="text" name="user_age"><br/>
hobby:<input type="checkbox" name="hooby" value="籃球">籃球
<input type="checkbox" name="hooby" value="籃球">乒乓球
<input type="checkbox" name="hooby" value="籃球">足球<br/>
------寵-----物-------<br/>
-------單個狗--------<br/>
寵物名稱:<input type="text" name="dog.name"><br/>
寵物顏色:<input type="text" name="dog.color"><br/>
-----集合狗——————<br/>
寵物名稱:<input type="text" name="dogs[0].name"><br/>
寵物顏色:<input type="text" name="dogs[0].color"><br/>
寵物名稱:<input type="text" name="dogs[1].name"><br/>
寵物顏色:<input type="text" name="dogs[1].color"><br/>
<input type="submit" value="提交">
</form>
controller:
@RequestMapping("/myform2")
public String myform4(User user){
System.out.println(user);
return "second.jsp";
}