2016-05-31 7 views
0

grailsのgroovyの新機能です。私はGSPページでdatepickerを使用します。私はそれを使用して日付を取得し、サーバー側で解析すると、オブジェクトを保存することはできません。datepickerから日付を取得してGroovyで解析するとオブジェクトを保存できません

マイドメインは

class PurchaseOrder { 
    Date orderDate; 
    Date deliveryDate; 
    Double totalQuantity; 
    Double deliveredQuantity; 
    Double totalCost; 
    Long totalItem; 
    Long deliveredTotalItem; 
    Long requisition 

    static belongsTo = [branch:OrganizationalBranch,orderedBy: Employee, supplier: Supplier] 
    static hasMany = [itemDetails:OrderDetails] 



    static constraints = { 
     deliveryDate(nullable: true); 
     deliveredQuantity(nullable: true); 
     deliveredTotalItem(nullable: true); 

     itemDetails(nullable: true); 
     orderDate(nullable: true); 
     totalItem(nullable: true); 
     totalQuantity(nullable: true); 
     totalCost(nullable: true); 
    } 
} 

マイGSPがあるさ:

<div class="fieldcontain ${hasErrors(bean: purchaseOrderInstance, field: 'deliveryDate', 'error')} "> 
    <label for="deliveryDate"> 
     <g:message code="purchaseOrder.deliveryDate.label" default="Delivery Date" /> 

    </label> 
    <g:field type="deliveryDate" id="deliveryDate" name="deliveryDate" class="datepicker" /> 

</div> 

とコントローラのコードは次のとおりです。

try { 
      String orderDateSt = params?.deliveryDate 
      SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy") 
      def orderDate = new Date().parse("MM/dd/yyyy", orderDateSt.trim())   
      purchaseOrderInstance.deliveryDate = orderDate 
     }catch (Exception ex) { 
      ex.getMessage() 
      ex.printStackTrace() 
     } 

エラーは次のとおりです。

purchase.PurchaseOrderController - Field error in object 'com.sb.ims.purchase.PurchaseOrder' on field 'deliveryDate': rejected value [06/30/2016]; codes [com.sb.ims.purchase.PurchaseOrder.deliveryDate.typeMismatch.error,com.sb.ims.purchase.PurchaseOrder.deliveryDate.typeMismatch,purchaseOrder.deliveryDate.typeMismatch.error,purchaseOrder.deliveryDate.typeMismatch,typeMismatch.com.sb.ims.purchase.PurchaseOrder.deliveryDate,typeMismatch.deliveryDate,typeMismatch.java.util.Date,typeMismatch]; arguments [deliveryDate]; default message [Unparseable date: "06/30/2016"] 

どうすればこの問題を解決できますか?

答えて

0

あなたのGrailsのバージョンが> = 2.3である場合は、代わりにあなたのコントローラで日付の解析のBindingFormatアノテーションを使用することができるはずです。彼ができる

輸入org.grails.databinding.BindingFormat

class PurchaseOrder { 
    @BindingFormat('MM/dd/yyyy') 
    Date orderDate 
    @BindingFormat('MM/dd/yyyy') 
    Date deliveryDate 
    .... 
} 
+0

また、グローバルにプロパティ 'grails.databinding.dateFormats'で設定します – Loucher

関連する問題