您好,欢迎来到汇意旅游网。
搜索
您的当前位置:首页Failed to bind request element:

Failed to bind request element:

来源:汇意旅游网

错误的具体内容是:2018-12-03 12:40:06.850 [http-nio-80-exec-3] WARN  o.s.w.s.m.support.DefaultHandlerExceptionResolver - Failed to bind request element: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "orderBook"。

检查了半天,感觉自己程序上没写错,但是后来通过自己的检查发现了自己的错误!我这里的逻辑的是同一个带参的url去请求一个页面,然后在页面中有通过ajax提交数据。

错误代码:

@RequestMapping("/bookinfo/{id}")
	public String deGet(HttpServletRequest request,
			HttpServletResponse response, @PathVariable(name = "id") int id,
			Model model) throws ServletException, IOException {
 $.ajax({
    	   type:"post",
    	   contentType:"application/json",
    	   data:data,
           url:"/borrow/book",
		   dataType:"json",
           success: function (datas) {
      
        	 if(datas==1){
                 alert("请将书自己取出");
                 }
        	 else if(datas==2){
        		 alert("您最多借三本书");
        	 }
                 else{
                     var m=confirm("其他人已经借走,你要预定吗?");
                     if(m==true){
                         var a="[[${bookinfo1.id}]]";
                         var b="[[${bookinfo1.bookname}]]";
                         var c="[[${bookinfo1.book}]]";
                         var d=$("#time").val();

                         dldata={"time":d,"id":a,"openid":b,"book":c};
                         var data=JSON.stringify(dldata);

                         $.ajax({
                             url:"/orderBook",
                             type:"post",
                             data:data,
                             contentType:"application/json",
                             dataType:"json",
                             success:function(datas){
                                 /*执行的函数*/
                                ....

我这两次上传,第一个ajax上传的url并不会出错,但是第二个就会出错,原因是因为我的第一个映射是:/bookinfo/{id},而后面的都是没有/{id}的,也就是没有这个参数,程序会把我的url当成int类型的参数,而我的url是String类型的,因此就会出现这个错误。其实解决方法有两种,第一种是在/bookinfo/{id}的后面再加上一个/name,这个加上什么都行,这里只是个例子。

或者就是在我其他url后面加上带参数的url:如一下代码所示:

 $.ajax({
                             url:"/orderBook/1",
                             type:"post",
                             data:data,
                             contentType:"application/json",
                             dataType:"json",

虽然带上了一个参数,但是你在controller层可以不用传递过去的参数,之后就会发现,错误已经解决!。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hids.cn 版权所有 赣ICP备2024042780号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务