【问题标题】:How to pass Java Date object to dojo DateTextBox through Spring MVC and back to Java?java - 如何通过Spring MVC将Java Date对象传递给dojo DateTextBox并返回给Java?
【发布时间】:2010-07-29 23:05:45
【问题描述】:

我想知道如何从 beans --> hibernate --> Spring MVC --> dojo 传递 Java Date 对象,然后返回到将使用 hibernate 存储在数据库中的 Date 对象。

我尝试在 bean 类中通过将值解析为 dojo 友好格式 (yyyy-MM-dd) 来创建返回/获取字符串的 getter 和 setter。当数据库中的日期为空时,没有问题并且一切都按预期工作,但是当日期不为空时,由于错误 _841.getMonth() 不是方法而无法生成网页。我发现这是由于 spring 将 form:input ... 的值设置为格式为 yyyy-MM-dd 的字符串,而 dojo 没有将其视为日期,而是将其视为字符串。

我的代码如下:

<form:input path="tDate" />
<script type="text/javascript">
   Spring.addDecoration(new Spring.ElementDecoration({
      elementId : "tDate",
      widgetType : "dijit.form.DateTextBox",
      widgetAttrs : {promptMessage: "Enter a date",
                     required: "true"}
}));
</script>

spring 将 form:input ... 转换为类似:

<input id="tDate" name="tDate" value="2010-07-29" />

如果您能提出解决此问题的方法,我将不胜感激。如果可以让 Java Date 对象的 getter 和 setter 来获取/返回 Date 而不是 String,就像我现在所做的那样,那将是完美的。

干杯

【问题讨论】:

    标签: java hibernate spring dojo


    【解决方案1】:

    添加:

    datePattern : "yyyy-MM-dd"
    

    到 widgetAttrs 解决了这个问题。尽管 dojo DateTextBox 使用此模式作为默认模式,但必须指定它才能使 form:input 正常工作。

    这个解决方案并不完美,因为在 beans 类中我仍然使用 getter 和 setter 来为我的 Date 对象使用 String 并解析这些方法中的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 2019-05-26
      相关资源
      最近更新 更多