7

私は次のように定義する非常に単純な関数を持っています:

 def mySimpleFunction(Map myMap) {
   // Function logic here...
  }

ただし、これをコンパイルしようとすると、警告メッセージが表示され、次のような例外が発生します。[mySimpleFunction]アクションは、Validateableでマークされていないタイプ[java.util.Map]のパラメーターを受け入れます。

この関数を検証可能としてマークするにはどうすればよいですか?org.codehaus.groovy.grails.validation.Validateableをインポートしました

私のクラスを@Validateableとしてマークしました。

アプリケーションをビルドするには、別の方法で何をする必要がありますか?

前もって感謝します!

4

1 に答える 1

21

ヘルパーメソッドの場合は、プライベートにします。Grails 2.0以降では、パブリックコントローラーメソッドはアクションであると見なされ、引数はバインド可能であると見なされます。つまり、数値型、ブール値、文字列など、またはコマンドオブジェクトクラスである必要があります。

コマンドオブジェクトクラスは、コントローラークラスファイルで定義されている場合は自動的に検証可能になり、他の場所で定義されている場合は、として注釈を付ける必要があります@Validateable

これはヘルパーメソッドであり、アクションではないため、プライベートにするだけです(特に、別のクラスから呼び出すことはできないため)。

private mySimpleFunction(Map myMap) {
   // Function logic here...
}
于 2013-03-12T01:16:06.973 に答える