Java JSTL&;Spring:使用参数访问方法

Java JSTL&;Spring:使用参数访问方法,java,spring,jsp,jstl,el,Java,Spring,Jsp,Jstl,El,我有一个有方法的对象 public boolean hasPermission(String role) { return permissions.contains(role); } 我想做的工作相当于: <c:if test="${row.hasPermission(role)}"> <td></td> </c:if> 但是我无法从JSP文件中访问hasPermission方法。我该怎么做呢?EL的最新版本(例如在T

我有一个有方法的对象

  public boolean hasPermission(String role) {
   return permissions.contains(role);
  }
我想做的工作相当于:

<c:if test="${row.hasPermission(role)}">
    <td></td>
</c:if>

但是我无法从JSP文件中访问hasPermission方法。我该怎么做呢?

EL的最新版本(例如在Tomcat7中)支持这个(
${obj.method(arg)}

如果您有旧版本,则有两个选项:

  • 创建自定义JSTL函数
  • 使用

您还可以声明getter(类似于getPermissions)并从jstl使用它:row.permissionsHow我可以检查row.permissions是否包含某个值吗?@Steve如果row.permissions返回Map,您可以像jstl中的任何其他映射一样访问它(row.permissions[role]IIRC)。布景也一样。(不确定是否可以直接将参数传递给getter,但可能也值得一试。)最好编写一个自定义jstl函数——编写一个函数非常容易,而且您应该摆脱这种迭代和比较业务(这绝对不是一个好主意)——参见