というユーザードメインを持つアプリケーションがSecUser(Spring Secrity Coreのセキュリティユーザークラス)から拡張されています。このドメイン(ユーザ)では、サーバ項目があり、そのうちの1つは生年月日です。足場はg:datePickerというタグを作成しますが、スタイルは気に入らないです。ドメイン内の日付フィールドとg:textFieldタグがGrailsで動作しません
例:BoostrapのDatepicker(http://www.eyecon.ro/bootstrap-datepicker/)ですが、このライブラリは入力タイプ= "text"フィールドを使用しています。私の見解では
( .gsp)私は、テキスト入力を置けば、私は値がnullのuserInstance.birthDateを取得するときに、保存して、更新アクションがあるため、私のコントローラでは動作しません。
g:datePickerタグを入力すると、コントローラが正しく値を取得します。
どうすればこの問題を解決できますか?おかげさまで
EDITEDは:
私の見解で日付ピッカーブートストラップのコード:今すぐ
<div class="input-group date date-picker" data-date-format="dd-MM-yyyy" data-date-end-date="+0d">
<input type="text" id="birthDate" name="birthDate" value="${formatDate(format:'dd-MM-yyyy',date: userInstance?.birthDate)}" class="form-control form-shadow"/>
<span class="input-group-btn">
<button class="btn default" type="button">
<i class="fa fa-calendar"></i>
</button>
</span>
</div>
<span class="help-block">
<h5>
<g:message code="custom.date.picker.description" default="Select a date"/>
</h5>
</span>
、私はparams.birthDateと私のコントローラに値を取得することができますが、次のエラーが表示されます。
Class java.text.ParseException
Message Unparseable date: "01-04-2016"
解決:
解決策は、Datepicker for Bootstrapライブラリで正しく解析されています。このライブラリは、異なるパーサーを使用します。たとえば、Grailsの '01-04-2016'は 'dd-MM-yyyy'ですが、このライブラリの 'dd-mm-yyyy'です。
このリンクでのフォーマットが表示される: https://bootstrap-datepicker.readthedocs.org/en/latest/options.html#format
を加えて、Config.groovyに次の行を追加する必要がある:
grails.databinding.dateFormats = [ 'dd-MM-yyyy', 'yyyy-MM-dd', 'yyyy-MM-dd HH:mm:ss.S' ]
コントローラで同じ値を取得しているため、この解決策は機能しません:null。私はlog.error(userInstance.birthDate)と一緒に見ることができます。私は入力のコードを追加するために私の質問を編集しました。 –
@JesúsIglesias入力フィールドに 'name'属性がありません。従ってコントローラ内では「ヌル」である。それは '' – injecteer
になります。私は、コントローラ内の値を得ることができますが、私は次のエラーを取得する: クラス java.text.ParseException メッセージ 解析できない日:「2016年1月4日は」 –