使用OGNL在JSP文件中调用带参数的java方法

问题描述 投票:0回答:1

我正在尝试在JSP中根据特定条件显示图像。

<s:if test="%{#employee.ratingInfo.ispromoted!=null && #employee.ratingInfo.ispromoted.code==56}">  
    <i class="check"></i>
</s:if>
<s:else>
    <i class="invalid"></i>
</s:else>

我想检查是否有一种方法可以通过传递

employee.ratingInfo.ispromoted.code
作为参数来调用 java 中的函数,然后根据返回值我们可以显示图像。例如:

JSP:

<s:if test="checkRating(#employee.ratingInfo.ispromoted.code)">  
    <i class="check"></i>
</s:if>
<s:else>
      <i class="invalid"></i>
</s:else>

Java:

public boolean checkRating(int rating){
    if(rating==56){
        return true;
    }
      return false;
}

如果我将参数从 JSP 传递到 Java 中的方法来检查 if 条件,我们是否可以实现它?

jsp struts2 ognl
1个回答
0
投票

OGNL 中的方法调用与 Java 中的方法调用不同。请参阅 OGNL 语言指南中的调用方法

OGNL 调用方法的方式与 Java 略有不同, 因为 OGNL 是解释性的并且必须在运行时选择正确的方法 时间,除了实际参数之外没有额外的类型信息 提供。 OGNL 始终选择它能找到的最具体的方法 其类型与提供的参数匹配;如果有两个或更多 同样具体且与给定参数匹配的方法,其中之一 其中将被任意选择。

特别是,空参数匹配所有非基本类型,所以 最有可能导致调用意外的方法。

#employee.ratingInfo.ispromoted.code
的值应返回原始整数以匹配方法的参数类型。

© www.soinside.com 2019 - 2024. All rights reserved.