3

コントローラーで日付パラメーターをバインドしようとしています。format の日付があれば十分であるとどこかで読みました yyyy-MM-dd HH:mm:ss.S。しかし、これはうまくいきません。私が読んだ他のオプションは、解析したい属性に、、、などのサフィックスを追加することでしたが、この方法も機能しませ_day_month_year

したがって、基本的には一対多の関係であり、多側が日付です (アクションには日付が VisitList<Visit>あり、訪問には日付があります)。

// domain classes
class Action {
   List<Visit> visitList
   static hasMany = [visitList: Visit]
}

class Visit {
   Action action 
   static belongsTo = [action: Action]

   Date date
   String description
}

次のように、すべてのパラメーターをアクション インスタンスに解析します。

// in controller
def save(){
   Action actionInstance = new Action()
   action.properties = params
   action.save()
}

日付はビューから送信され、次の形式になります。

visitList[0].date=2012-05-15 00:00:00.0000

しかし、日付はまだ空です。訪問には説明属性もあり、うまく機能します。この属性のパラメーターは次のとおりです。

visitList[0].description=description

提案やアドバイスをありがとう。

4

2 に答える 2

1

最初に訪問を保存してから、アクションを保存しようとしましたか? それがうまくいかない場合は、日付を文字列から日付に変換する必要があるかもしれません.Date.parse()メソッドはgrails 2.0では廃止されています.これを試してください:

Date date = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(dateString)
def action = new Action()
def visit = new Visit(date: date, description: description?:"", action: action)
visit.save()
action.visitList.add(visit)
action.save()

-HTH

于 2012-05-16T01:23:58.267 に答える
0

コードをもっと見ないと、それを判断するのは困難です。Command Objectを試してみてください。あなたの入力はどこから来ていますか?ビュー?その場合、通常は入力を制御するタグ。これらを使用していない場合は、DateFormat {hint, use the parse()method} を使用して手動で日付を解析する必要がある場合があります。

于 2012-05-15T11:46:21.373 に答える