spring MVC中,后台控制层获取前台的传值主要有两种方式,
(1),利用 request.getParameter(“xx”);可以获取前台的所传的值
(2),使用spring MVC的@requestParam注解
以下具体详解:
前端页面:
<form action="test2.do" method="post">
text1:<input type="text" name="text1" value = "text1"><br>
text2:<input type="text" name="text2" value = "text2"><br>
text3:<input type="text" name="text3" value = "text3"><br>
<input type="submit" value="确定">
</form>
controller:
@RequestMapping("/test2")
public String gototest2(@RequestParam String text1 , HttpServletRequest req){
System.out.println("text1:"+text1); //点击确定后输出 text1
String text2= req.getParameter("text2");
System.out.println("text2:"+text2)); //点击确定后输出 text2
return null;
}
这里就验证了这两种方式,controller都可以接受到前台所传的参数值。
@requestParm 注解还有其他的一些属性
value:
指定value属性,当前台没有哪个标签的name属性和value相同时,则接受到的值为null,否则取值为标签name属性和value值相同的值,一般与required属性一起使用。
required:
指定required属性,就两个取值true或false,表示的是是否需要有与value属性值一致的标签的name值,默认为true,如果没有标签的name值和value值一致,会报错。
“ HTTP Status 400 - Required String parameter ‘aa’ is not present ”
name:
指定name属性,当name的值是前台某个标签的name值时,那么所传递过来的值就是该标签对应的值,比如,前台页面还是上面的页面,controller如下:
@RequestMapping("/test2")
public String gototest2(@RequestParam(name="text3") String text1 ){
System.out.println("text1:"+text1); //点击确定后输出 text3
}
defaultValue:
指定defaultValue属性,表示当设置value属性时,前台没有哪个标签的name属性值和value属性值相同,则所接收的值就是defaultValue属性所设置的值,比如,前台页面还是上面的页面,controller如下:
@RequestMapping("/test2")
public String gototest2(@RequestParam(defaultValue="aa",value="bb",required=true)String text1,HttpServletRequest req){
System.out.println("text1:"+text1); //点击确定后输出 aa
return null;
}