springmvc接收前台参数为null解决方法
在使用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); } }); }
以上就是springmvc接收参数为null的解决方法,以上观点及比喻纯属个人愚见,如有纰漏,请在评论区斧正。
上一篇:
IDEA上Java项目控制台中文乱码