java - 错误 "java.lang.NumberFormatException: For input string: "“”将 JSON 数组传递给 Spring-MVC

标签 java ajax json spring spring-mvc

我收到错误“java.lang.NumberFormatException:对于输入字符串:”“”将 JSON 数组传递给 Spring-MVC..

这是我的 JSON JavaScript 调用:

function doAjaxPost() {  

      var inData = {};

      inData.nameList = ['kurt','johnathan'];
      inData.educationList = ['GSM','HardKnocks'];

      htmlStr = JSON.stringify(inData);
      alert(htmlStr);

      $.post( contexPath + "/AddUser.htm", inData, function(outData, outStatus){
          alert(outStatus);

      });
};

这是我用 Java 编写的 bean:

public class User {

    private String name = null;
    private String education = null;

    private List nameList = new ArrayList();
    private List educationList = new ArrayList();

    public List getNameList() {
        return nameList;
    }

    public List getEducationList() {
        return educationList;
    }

    public void setNameList(List nameList) {
        this.nameList = nameList;
    }

    public void setEducationList(List educationList) {
        this.educationList = educationList;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEducation() {
        return education;
    }
    public void setEducation(String education) {
        this.education = education;
    }

}

这是我的 Java Controller ,Spring-MVC:

@RequestMapping(value="/AddUser.htm",method=RequestMethod.POST)
    public @ResponseBody JsonResponse addUser(@ModelAttribute(value="user") User user, BindingResult result ){
        JsonResponse res = new JsonResponse();

        if(!result.hasErrors()){
            res.setStatus("SUCCESS");
            res.setResult(userList);
        }else{
            res.setStatus("FAIL");
            res.setResult(result.getAllErrors());
        }

        return res;
    }

下面是我得到的错误:

SEVERE: Servlet.service() for servlet Spring MVC Dispatcher Servlet threw exception
java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:493)
    at java.lang.Integer.parseInt(Integer.java:514)
    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:952)
    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:896)
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76)
    at org.springframework.validation.DataBinder.applyPropertyValues(DataBinder.java:673)
    at org.springframework.validation.DataBinder.doBind(DataBinder.java:569)
    at org.springframework.web.bind.WebDataBinder.doBind(WebDataBinder.java:190)
    at org.springframework.web.bind.ServletRequestDataBinder.bind(ServletRequestDataBinder.java:110)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.doBind(AnnotationMethodHandlerAdapter.java:712)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doBind(HandlerMethodInvoker.java:804)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:358)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:170)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:774)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:679)

最佳答案

我很确定你的 bean 中缺少泛型是问题所在:

private List nameList = new ArrayList();
private List educationList = new ArrayList();

应该是:

private List<String> nameList = new ArrayList<String>();
private List<String> educationList = new ArrayList<String>();
// change getters and setters also

JSON 映射器将查看字段的通用类型来决定它是否可以映射值。

关于java - 错误 "java.lang.NumberFormatException: For input string: "“”将 JSON 数组传递给 Spring-MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10840404/

相关文章:

使用线程的Java网络,当一个客户端离开另一个客户端时无法与服务器通信

java - 无法验证 Java - LDAP

javascript - 在 AJAX 请求中更新域名的 DNS

javascript - 如何让多个 Promise 操作同一个 DOM 元素作为副作用并获得一致的结果?

javascript - Vanilla javascript : Get a specific element of page in an ajax get request

javascript - 具有嵌套条件的 JSON 数据的 Angular 动态表单 View

iphone - 为 Objective C 转换 CURL 命令

javascript - 如何检查变量包含 JSON 对象或字符串?

java - 提供此供应链问题的递归解决方案

java - 无法编译 Eclipse PAHO MQTT 客户端项目