Java Spring Controller 獲取請求參數(shù)的幾種方法
1、直接把表單的參數(shù)寫在Controller相應的方法的形參中,適用于get方式提交,不適用于post方式提交。若"Content-Type"="application/x-www-form-urlencoded",可用post提交
url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=111111 提交的參數(shù)需要和Controller方法中的入?yún)⒚Q一致。
1
2
3
4
5
6
7
8
9
10
11
12
|
/** * 1.直接把表單的參數(shù)寫在Controller相應的方法的形參中 * @param username * @param password * @return */ @RequestMapping ( "/addUser1" ) public String addUser1(String username,String password) { System.out.println( "username is:" +username); System.out.println( "password is:" +password); return "demo/index" ; } |
2、通過HttpServletRequest接收,post方式和get方式都可以。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * 2、通過HttpServletRequest接收 * @param request * @return */ @RequestMapping ( "/addUser2" ) public String addUser2(HttpServletRequest request) { String username=request.getParameter( "username" ); String password=request.getParameter( "password" ); System.out.println( "username is:" +username); System.out.println( "password is:" +password); return "demo/index" ; } |
3、通過一個bean來接收,post方式和get方式都可以。
1
2
3
4
5
6
7
8
9
10
11
|
/** * 3、通過一個bean來接收 * @param user * @return */ @RequestMapping ( "/addUser3" ) public String addUser3(UserModel user) { System.out.println( "username is:" +user.getUsername()); System.out.println( "password is:" +user.getPassword()); return "demo/index" ; } |
4、使用@ModelAttribute注解獲取POST請求的FORM表單數(shù)據(jù)
1
2
3
4
5
6
7
8
9
10
11
|
/** * 4、使用@ModelAttribute注解獲取POST請求的FORM表單數(shù)據(jù) * @param user * @return */ @RequestMapping (value= "/addUser5" ,method=RequestMethod.POST) public String addUser5( @ModelAttribute ( "user" ) UserModel user) { System.out.println( "username is:" +user.getUsername()); System.out.println( "password is:" +user.getPassword()); return "demo/index" ; } |
5、用注解@RequestParam綁定請求參數(shù)到方法入?yún)?nbsp;
當請求參數(shù)username不存在時會有異常發(fā)生,可以通過設置屬性required=false解決,例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@RequestParam (value= "username" , required= false ) **** 若 "Content-Type" = "application/x-www-form-urlencoded" ,post get都可以 **** 若 "Content-Type" = "application/application/json" ,只適用get /** * 5、用注解@RequestParam綁定請求參數(shù)到方法入?yún)?/code>
|
6、用request.getQueryString() 獲取spring MVC get請求的參數(shù),只適用get請求
1
2
3
4
5
|
@RequestMapping (value= "/addUser6" ,method=RequestMethod.GET) public String addUser6(HttpServletRequest request) { System.out.println( "username is:" +request.getQueryString()); return "demo/index" ; } |
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://www.cnblogs.com/wxwBlog/p/6128882.html