一、通过@PathVariabl获取路径中的参数
@RequestMapping(value="user/{id}/{name}",method=RequestMethod.GET/POST)
public String printMessage1(@PathVariable("id") String id,@PathVariable("name") String name, ModelMap model) {
System.out.println(id);
System.out.println(name);
model.addAttribute("message","111111");
return"users";
}
例如,访问user/123/whd路径时,执行以上方法,其中,参数id=123,name=whd
@RequestMapping(value="user/{id}/{name}")其中的{id}/{name}就是占位符,这样和路径能完整对应,之后通过方法中的注解从请求路径中获取这些站位符位置的值。
二、 @ModelAttribute获取请求的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;
privateint b;
}
Java Controller如下
@RequestMapping(method= RequestMethod.POST)
public StringprocessSubmit(@ModelAttribute("pojo") Pojopojo) {
return"helloWorld";
}
这里数据的获取就是以对象的方式获取,将获取的对象值赋值给pojo这个变量
同样可以按照对象来获取实例,不用ModelAttribute 来注释,直接在方法中写和提交的变量名称相同的类类型的变量就可以按照类的方式获取数据
三、如果提交的数据的名称和javabean 的名称相同则可以以pojo方式获取数据
表单属性名称如下:
<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 Controller 如下:
@RequestMapping(value="/formvalue.do")
Public String getValue(Pojo pojo){
// 方法中的a,b参数就是提交参数的名称
String a=pojo.getA();
String b=pojo.getB();
return "valuelist"
}
四、按照form中提交的名称获取,或者是提交的参数名称
表单属性名称如下:
<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 Controller 如下:
@RequestMapping(value="/formvalue.do")
Public String getValue(String a,String b){
// 方法中的a,b参数就是提交参数的名称
return "valuelist"
}
五、直接用HttpServletRequest获取
@RequestMapping(method= RequestMethod.GET)
public Stringget(HttpServletRequest request, HttpServletResponse response) {
System.out.println(request.getParameter("a"));
return"helloWorld";
}
六、用注解@RequestParam绑定请求参数
用注解@RequestParam绑定请求参数a到变量a
当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决,
例如: @RequestParam(value="a",required=false)
Controller如下
@RequestMapping(value= "/requestParam", method =RequestMethod.GET/POST)
public StringsetupForm(@RequestParam("a") String a,ModelMap model) {
System.out.println(a);
return "helloWorld";
}
Controller如下
@RequestMapping(value= "/requestParam", method =RequestMethod.GET/POST)
public StringsetupForm(@RequestParam(value="a" , required='false') String a,ModelMap model) {
System.out.println(a);
return "helloWorld";
}
以上都是获取请求参数的方式,@RequestParam(value="a" required=false) 从请求参数中获取值,而RequestMapping(value="/{id}/{name}/values.do")
对于这样的请求路径我们可以使用 public String getValue(@ParthVariable String id ,@PathVariable String name,HttpservleetRequest ) 这样的方式来获取路径中的参数
从controller (控制层)向view(视图) 传递数据的方式请看这篇文章:获取请求参数以及向前台传值