我收到错误“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)
我很确定你的豆子中缺少泛型是问题所在:
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