以前都是controller向前端页面传递参数,昨天学习SSM框架的时候要从前端向controller传递参数,我上网查了一下,今天就把他总结一下。
- 通过HttpServletRequest 向后台传递数据
前端代码
<h2>利用HttpServletRequest传数据</h2>
<form action="loginToJson">
用户名:<input name="name" /> 密码:<input name="pass" /> <input
type="submit" value="登陆">
</form>
后端代码`
@ResponseBody
@RequestMapping(value="/loginToJson",method=RequestMethod.POST)
public String loginToJson(HttpServletRequest request) {
User user = new User();
user.setUserName(request.getParameter("name"));
user.setPassword(request.getParameter("pass"));
return JSON.toJSONString(user);
}
- 通过参数向Controller传递值
前端代码
<h2>利用函数参数传数据</h2>
<form action="loginByVariable" method="post">
用户名:<input name="name" /> 密码:<input name="pass" />
<input type="submit" value="登陆">
</form>
后端代码`
@RequestMapping(value="/loginByVariable",method=RequestMethod.POST)
public String loginToSession(HttpServletRequest request,ModelMap map,String name,String pass) {
User user = new User();
user.setUserName(name);
user.setPassword(pass);
map.put("user", user);
System.out.println(user);
return "mySession";
}
- 利用函数参数,对象传递值到Controller
前端代码
<h2>利用函数参数传数据</h2>
<h2>利用函数参数对象传数据</h2>
<form action="loginByObject" method="post">
用户名:<input name="userName" /> 密码:<input name="password" /> <input
type="submit" value="登陆">
</form>
后端代码`
注意:User对象的属性名为userName和password,并有getter和setter属性
@RequestMapping(value="/loginByObject",method=RequestMethod.POST)
public String loginToSession(ModelMap map,User user) {
User user1 = new User();
user1.setUserName(user.getUserName());
user1.setPassword(user.getPassword());
System.out.println(user1+" Object");
map.put("user", user1);
return "mySession";
}
- 利用函数参数@RequestParam参数传递据
前端代码
<br>
<h2>利用函数参数@RequestParam参数传递据</h2>
<form action="loginByRequestParm" method="post">
用户名:<input name="name" /> 密码:<input name="pass" /> <input
type="submit" value="登陆">
</form>
后端代码`
@RequestMapping(value="/loginByRequestParm",method=RequestMethod.POST)
public String loginToSessiona(HttpServletRequest request,ModelMap map,
@RequestParam("name") String UserName,@RequestParam String pass) {
User user = new User();
user.setUserName(UserName);
user.setPassword(pass);
map.put("user", user);
System.out.println(user+"requestParam");
return "mySession";
}
- 通过URL传递参数 @PathVariable
后端代码`
@Controller
public class TestController {
@RequestMapping(value="/user/{userId}/roles/{roleId}",method = RequestMethod.GET)
public String getLogin(@PathVariable("userId") String userId,
@PathVariable("roleId") String roleId){
System.out.println("User Id : " + userId);
System.out.println("Role Id : " + roleId);
return "hello";
}
@RequestMapping(value="/product/{productId}",method = RequestMethod.GET)
public String getProduct(@PathVariable("productId") String productId){
System.out.println("Product Id : " + productId);
return "hello";
}
@RequestMapping(value="/javabeat/{regexp1:[a-z-]+}",
method = RequestMethod.GET)
public String getRegExp(@PathVariable("regexp1") String regexp1){
System.out.println("URI Part 1 : " + regexp1);
return "hello";
}
}