2017-04-18 10 views
0

私はNinjaFramework 6.0を使用しています。コントローラーメソッドに10番目の@Paramを追加しようとしましたが、Routes.javaをコンパイルする際に「適切なメソッドが見つからない(Controller [...] Index)」というエラーが発生しました。NinjaFrameworkのコントローラメソッドの引数の数に制限はありますか?

public Result personIndex(
     @Param("ssn") Optional<String> ssn,    
     @Param("dodId") Optional<String> dodId,    
     @Param("firstName") Optional<String> firstName, 
     @Param("middleName") Optional<String> middleName, 
     @Param("lastName") Optional<String> lastName, 
     @Param("birthday") Optional<String> birthday, 
     @Param("branch") Optional<String> branch, 
     @Param("rateRank") Optional<String> rateRank, 
     @Param("status") Optional<String> status, 
     @Param("page") Optional<Integer> page) { ... } 

私はのparamsの1を削除した場合、すべてがコンパイルして動作します:

私の方法は、このようになります。これは厳しい制限ですか?これらをある種の形式/オブジェクトにエンキャプシュレーションする必要がありますか?

-

これは、ルート設定のこのタイプを使用するときに問題に表示されます。

router.GET()ルート( "/者")(PersonController :: personIndex)と;。。

私はそれが正常に動作し '古い' 方法に切り替える場合:。。

router.GET()ルート( "/者")(PersonController.class、 "personIndex")と、

答えて

0

ニンジャドキュメント(http://www.ninjaframework.org/documentation/basic_concepts/routing.html)を閲覧しながら、私は

クラスninja.ControllerMethods次のテキストに気づいたJava 8のラムダ式の許容されるメソッドシグネチャである種々のインターフェースを定義します。コントローラメソッドは、ninja.Resultを返し、0〜12の任意の引数を持ちます。引数が12個以上必要な場合は、Ninjaの従来のClass + "メソッド"のルーティング戦略にフォールバックすることができます。

6.0バージョンから変更されたものがあるかどうかわかりませんが、10個のパラメータが機能するはずです。

関連する問題