Grails输入错误:属性必须是有效日期

时间:2014-02-07 12:26:22

标签: grails

我有一个使用自定义日期和时间选择器脚本的文本输入。

<div class="input-group date datetime" data-start-view="4" data-date-format="dd MM yyyy" data-min-view="2" data-link-field="dtp_input1">
    <input name="dateOfBirth" class="form-control" size="16" type="text" value="${userInstance?.dateOfBirth}"/>
    <span class="input-group-addon btn btn-primary"><span class="glyphicon glyphicon-th"></span></span>
</div>

它给了我这个错误 Property org.springframework.context.support.DefaultMessageSourceResolvable: codes [rms.User.dateOfBirth,dateOfBirth]; arguments []; default message [dateOfBirth] must be a valid Date

我不知道如何解决这个问题。使用grails dateTime picker标签似乎可以工作,但它的丑陋

1 个答案:

答案 0 :(得分:1)

唯一的方法是使用SimpleDateFormat。我经常将它用于带有JS日历的表单:

class YourController {

  static SimpleDateFormat sdf = new SimpleDateFormat( 'dd.MM.yyyy' )

  def index(){ 
    Date dateOfBirth
    try{ 
      if( params.dateOfBirth ) dateOfBirth = sdf.parse( params.dateOfBirth )
    }catch( Exception ignoreMe ){}
    // do something useful
  }

更新:

当然,您必须使用适当的日期格式。我在示例中dd.MM.yyyy给出的那个对应08.02.2014。对于像February 08 2014这样的字符串,您需要MMM dd yyyy之类的字符串。

有关详细信息,请参阅http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html