2017-04-18 63 views
0

我正在使用NinjaFramework 6.0,尝试在我的控制器方法中添加第10个@Param,现在我得到“没有找到合适的方法(控制器索引)”编译Routes.java时出错。限制在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之一,那么一切都将编译工作。这是一个硬限制吗?我是否应该将这些嵌入到某种形式/对象中?

-

使用这种类型的路由配置的时,这似乎是一个问题:。

router.GET()途径( “/人”)与(PersonController :: personIndex);

如果我切换到 '旧' 的方式,它工作得很好:

router.GET()路线( “/人”)与(PersonController.class, “personIndex”)。

回答

0

在浏览文档忍者(http://www.ninjaframework.org/documentation/basic_concepts/routing.html),我注意到以下文本

类ninja.ControllerMethods定义了对Java 8 lambda表达式可接受的方法签名各种接口。一个控制器方法返回一个ninja.Result并且有0到12个参数。如果你需要超过12个参数,你可以回退到忍者的Class +“method”传统路由策略。

不确定是否有东西从6.0版本改变,但10个参数应该工作。

相关问题