在使用springmvc时,遇到接收前台参数为null可能是没有使用@RequestParam
注解的方法进行接参数。
@RequestParam(org.springframework.web.bind.annotation.RequestParam)
:GET和POST请求传的参数会自动转换赋值到@RequestParam
所注解的变量上。
这个定义什么意思呢?就是说,我们在开发后台时,一定要注意前台发送数据时,ajax
中data
中定义数据的默认值
是什么。如下html部分的ajax方法中写的data{"testvalue":testvalue}
这个data中加了双引号的"testvalue"
便是默认值
,后面的testvalue是获取html某个标签的ID的值的变量,我们需要传到后台的就是这个变量。这个所谓的默认值
更像是一个指示牌
。就如你刚下飞机,你的朋友委托一个陌生人来接你,那个陌生人就会举着一个指示牌
,当你看到指示牌
后,就知道接下来该怎么做。
具体使用方法如下:
//springmvc部分代码
@Controller
public class receiveParameter{
@RequestMapping("/test")
@ResponseBody
public String aptC (@RequestParam("testValue") String data){
System.out.println("你好");
System.out.println("接收的参数"+data);
return "1";
}
}
//html部分ajax方法代码
function sendParameter() {
var testValue = $("#test").val();
$.ajax({
url: "test",
type: "post",
data: {"testValue": testValue},
dataType:"json",
success: function (data) {
alert(data);
}
});
}
当然,我们不使用@RequestParam
这个注解也是行的通的,但后台在定义参数时,我们必须要保持参数名
与前台发送数据的通行证
保持一致,这样参数名
会被默认为@RequestParam
的默认值。
具体方法如下:
//springmvc部分代码
@Controller
public class receiveParameter{
@RequestMapping("/test")
@ResponseBody
public String aptC (String testValue){
System.out.println("你好");
System.out.println("接收的参数"+testValue);
return "1";
}
}
//html部分ajax方法代码
function sendParameter() {
var testValue = $("#test").val();
$.ajax({
url: "test",
type: "post",
data: {"testValue": testValue},
dataType:"json",
success: function (data) {
alert(data);
}
});
}