【问题标题】:JSTL & Spring: Accessing methods with argumentsJSTL 和 Spring:使用参数访问方法
【发布时间】:2011-04-18 05:32:36
【问题描述】:

我有一个带有方法的对象

  public boolean hasPermission(String role) {
   return permissions.contains(role);
  }

我想做相当于:

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

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

【问题讨论】:

    标签: java spring jsp jstl el


    【解决方案1】:

    最新版本的 EL(例如在 tomcat 7 中)支持此功能 (${obj.method(arg)})

    如果您有旧版本,您有两种选择:

    【讨论】:

    • 您也可以声明 getter(类似于 getPermissions)并从 jstl 中使用它:row.permissions
    • 如何检查 row.permissions 是否包含某个值?
    • @Steve 如果 row.permissions 返回 Map,您可以像访问 jstl 中的任何其他地图一样访问它 (row.permissions[role] IIRC) .与 Set 相同。 (不确定是否可以直接将参数传递给 getter,但也值得一试。)
    • 你最好写一个自定义的jstl函数——写一个很容易,你会摆脱这种迭代和比较业务(这绝对不是一个好主意)——见@ 987654322@
    猜你喜欢
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多