[X] 中的 [getAssociatedToEntities] 操作接受 [java.util.List] 类型的参数
Posted
技术标签:
【中文标题】[X] 中的 [getAssociatedToEntities] 操作接受 [java.util.List] 类型的参数【英文标题】:The [getAssociatedToEntities] action in [X] accepts a parameter of type [java.util.List] 【发布时间】:2017-10-09 13:18:57 【问题描述】:上下文
我在 Grails 2.4.4 中有一个使用 Spring Security Rest Plugin 1.5.4 for Grails 和 Spring Security Core 2.0.0 的项目,我收到了这个警告:
Warning |
The [getAssociatedToEntities] action in [security.UserController] accepts a parameter of type [java.util.List]. Interface types and abstract class types are not supported as command objects. This parameter will be ignored.
@Secured("hasAnyRole('READ__USER', 'READ__PROFILE')")
^
这是代码...
构建配置
//...
compile "org.grails.plugins:spring-security-core:2.0.0"
compile "org.grails.plugins:spring-security-rest:1.5.4"
//...
UserController (警告来自的代码!)
@Secured("hasAnyRole('READ__USER', 'READ__PROFILE')")
def getAssociatedToEntities(List<Long> e, SearchCommand cmd)
//code omitted
问题:
如何消除该警告?提前致谢!
【问题讨论】:
【参考方案1】:将其包装在列表中:@Secured("hasAnyRole(['READ__USER', 'READ__PROFILE'])")
【讨论】:
【参考方案2】:java.util.List
是一个接口,不能用作Command Object,试试这个吧:
创建一个包含列表的命令对象
import grails.validation.Validateable
@Validateable
class SearchListCommand extends SearchCommand
List values
并将列表的声明替换为getAssociatedToEntities
操作中的命令对象
def getAssociatedToEntities(SearchListCommand listCommand)
//code omitted...
【讨论】:
以上是关于[X] 中的 [getAssociatedToEntities] 操作接受 [java.util.List] 类型的参数的主要内容,如果未能解决你的问题,请参考以下文章
Javascript中的parseInt(x)和+(x)有啥区别[重复]
Matlab中的lambda表达式 f=@(x) x^2-2*x+1;