当前位置: 首页 > 知识库问答 >
问题:

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

冯星阑
2023-03-14

我收到错误“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中的控制器,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)

共有1个答案

屠锐
2023-03-14

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

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 映射器将查看字段的泛型类型,以确定它是否可以映射值。

 类似资料:
  • 问题内容: 我正在尝试获得系统的运行平衡。为此,我从AMOUNT列获取jtable中所有数字的总和,然后将总和减去txtLoanAmount内部的值。这是我的代码段: 现在我收到错误消息: 我该如何解决呢?任何帮助将不胜感激。谢谢 问题答案: 由于Float.parseFloat()和Float.valueOf()始终将数字假定为您的本地格式,因此,这是一个简短的示例,如果您的语言环境与您获取的数

  • 我需要通过jQuery发布一个请求。ajax()到Spring MVC控制器URL映射方法并接收响应;请求和响应数据均为JSON格式。 Ajax调用应该是这样的: Spring MVC控制器URL映射方法: 我面临的第一个问题是客户端(浏览器)失败,错误代码为400(错误请求)。所以,我是JSON。在ajax调用中字符串化数组: 这一次,Spring MVC成功地收到了请求。但是字符串值列表有问题

  • 问题内容: 所以,我有一个问题真的困扰我。我有一个用Java开发的简单解析器。这是相关代码: 输入文件是CSV文件,文件的第一项是整数。当我开始解析时,我立即得到这个异常: 我检查了文件,它的第一个值确实为1(该字段中没有其他字符),但仍然收到消息。我认为这可能是由于文件编码所致:它是UTF-8,带有Unix终端。该程序在Ubuntu 14.04上运行。欢迎寻找问题的任何建议。 问题答案: 您在该

  • 问题内容: 在运行我的代码时,我得到了: 如何防止此异常发生? 问题答案: 不是整数。如果尝试将其解析为整数,则必须抛出该异常。 解析前请检查或Exception正确处理。 异常处理 或- 整数模式匹配

  • 问题内容: 我正在将ajax发布到webmethod上,我可以在客户端(通过Firebug)看到请求的状态为200,但未达到我的webmethod中的停止点(webmethod的第一行)。json参数一切正常,但是通过反序列化json的方式,我不得不将其更改为字符串。 js: aspx: 问题答案: 您在jQuery JSON帖子中缺少内容类型: 请参阅本文。当我遇到类似的问题时,它对我很有帮助:

  • 我正在使用以下技术进行一个投资组合项目:Java、Spring、Hibernate、JavaScript、Thymeleaf和高图。当我试图用JavaScript渲染数据可视化图表时,字符串数组模型在JS中没有得到正确的定义。 这个类生成有问题的数组. transtToJsonArray()被注释掉,因为我正在测试java数组和json数组。 下面是使用Thymeleaf变量渲染的graph.ht