一、 通过@PathVariabl获取路径中的参数
例如,访问user/123/xiaoming路径时
@RequestMapping(value="user/{id}/{name}",method=RequestMethod.GET)
public String printMessage1(@PathVariable String id,@PathVariable String name, ModelMap model) {
System.out.println(id);
System.out.println(name);
model.addAttribute("message", "111111");
return "users";
}
执行以上方法,其中,参数id=123,name=xiaoming
二、 @ModelAttribute获取POST请求的FORM表单数据
JSP表单如下
<form method="post" action="hao.do"> a: <input id="a" type="text" name="a"/> b: <input id="b" type="text" name="b"/> <input type="submit" value="Submit" /> </form>
Java类 Pojo如下
public class Pojo{ private String a; private int b; //...参数a和b的get和set函数 }
Java Controller如下
@RequestMapping(value="hao.do"method = RequestMethod.POST)
public String processSubmit(@ModelAttribute("p") Pojo p) {
//p实例可以通过get函数获取到request传来的a和b参数
return "helloWorld";
}
三、 直接用HttpServletRequest获取
注入的方式,request response 和session 可以直接写在函数的参数列表上,然后再函数体中进行调用。
@RequestMapping(method = RequestMethod.GET)
public String get(HttpServletRequest request, HttpServletResponse response,HttpSession session
) {
System.out.println(request.getParameter("a"));
// session.setAttribute("list", list);
return "helloWorld";
}
四、 用注解@RequestParam绑定请求参数
请求为http://192.168.4.125:8080/SpringTest1/edit.do?a=123;
用注解@RequestParam绑定请求参数a到变量a
当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决,
例如: @RequestParam(value="edit.do", required=false)
Controller如下
@RequestMapping(value = "edit.do", method = RequestMethod.GET,required=false) public String setupForm(@RequestParam("a") String a, ModelMap model) { System.out.println(a); return "helloWorld"; }
注:
ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。ModelMap的实例是由bboss mvc框架自动创建并作为控制器方法参数传入,用户无需自己创建。通过以下方法向页面传递参数:
addAttribute(String key,Object value);
在界面中通过el语句就可以获取到值 ${key}