2017-06-22 60 views
0

我试图在jsp中显示基于某些条件的图像。使用jsp文件中的参数调用java方法

<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中以检查条件。

+0

只是试试.... –

回答

0

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

OGNL调用方法略有不同,从Java那样, 因为OGNL从实际参数解释,必须选择在运行时 正确的方法,没有额外的类型信息预留的方式 提供。 OGNL总是选择最具体的方法,它可以找到 其类型与提供的参数相匹配;如果有两个或两个以上的方法具有相同的特定性并且与给定的参数相匹配,则它们中的一个将被任意选择。

特别是,null参数匹配所有非基元类型,因此 最有可能导致调用一个意外的方法。

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

+0

你应该接受答案,并尽可能upvote。 –