Spring 3.1 表单与 List绑定

发布于 2025-01-08 06:28:58 字数 1004 浏览 0 评论 0原文

我有一个表单对象

public class TestForm {
 private long id;
 private List<Date> dates;
// getters and setters for the above
}

,我的控制器有以下内容..

@RequestMapping(value = "/assignDummy", method = RequestMethod.POST)
public @ResponseBody
String assignDates(TestForm frm) {
    System.out.println("frm:"+frm.getId()+", date:"+frm.getDates());
    return "Everything is fine";
}

我的表单..

<form name="abc" method="post" action="assignDummy.htm">
<input type="text" name="id" value="1000">
<input type="text" name="dates[0]" value="4500000">
<input type="submit">
</form>

我收到以下错误..

无法将“java.lang.String”类型的属性值转换为 属性“dates[0]”需要类型“java.util.Date”;嵌套的 例外是 org.springframework.core.convert.ConversionFailedException:失败 从 java.lang.String 类型转换为 java.util.Date 类型的值 '4500000';嵌套异常是 java.lang.IllegalArgumentException"

任何帮助表示赞赏。 提前致谢

I have a form object

public class TestForm {
 private long id;
 private List<Date> dates;
// getters and setters for the above
}

And my controller has the following..

@RequestMapping(value = "/assignDummy", method = RequestMethod.POST)
public @ResponseBody
String assignDates(TestForm frm) {
    System.out.println("frm:"+frm.getId()+", date:"+frm.getDates());
    return "Everything is fine";
}

My form..

<form name="abc" method="post" action="assignDummy.htm">
<input type="text" name="id" value="1000">
<input type="text" name="dates[0]" value="4500000">
<input type="submit">
</form>

I get the following error..

Failed to convert property value of type 'java.lang.String' to
required type 'java.util.Date' for property 'dates[0]'; nested
exception is
org.springframework.core.convert.ConversionFailedException: Failed to
convert from type java.lang.String to type java.util.Date for value
'4500000'; nested exception is java.lang.IllegalArgumentException"

Any help is appreciated.
Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

洒一地阳光 2025-01-15 06:28:58

您试图将字符串放入日期而不进行转换,因此它崩溃了。
您必须使用自定义属性编辑器才能将输入字符串转换为日期。

尝试添加到您的控制器中

 @InitBinder
    public void initBinder(WebDataBinder binder) {
        CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat("MM/dd/yyyy"), true);
        binder.registerCustomEditor(Date.class, editor);
    }

You are trying to put a String into Date without converting it, so it crashes.
You have to use a custom property editor in order to convert the input String into a Date.

Try to add in your controller

 @InitBinder
    public void initBinder(WebDataBinder binder) {
        CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat("MM/dd/yyyy"), true);
        binder.registerCustomEditor(Date.class, editor);
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文