使用jsp文件中的参数调用java方法

时间:2017-06-22 19:36:41

标签: jsp struts2 ognl

我试图在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中的函数以检查条件是否正确。

1 个答案:

答案 0 :(得分:0)

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

  

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

     

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

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