2016-01-18 1 views
-1

У меня есть этот чек в моем JSP:Как сравнить значения в JSP с использованием JSP Expression Language (EL)

<logic:equal name="${product.status}" value="${ProductStatuses.SOLD}"> 
    // do something 
</logic:equal> 

<logic:equal name="${product.status}" value="${ProductStatuses.IN_STOCK}"> 
    // do something else 
</logic:equal> 

Обе проверки возвращает истину, так что, очевидно, что-то не в порядке. продукта status имеет тип int и вот мой ProductStatuses класс, который автоматически генерируется AndroMDA и, следовательно, в .jar:

public interface ProductStatuses { 
    /** 
    * @author andromda 
    */ 
    int SOLD = 1; 

    /** 
    * @author andromda 
    */ 
    int IN_STOCK = 2; 

    /** 
    * @author andromda 
    */ 
    int N_A = 0; 
} 

Что может быть не так?

ответ

0

Хорошо, у меня есть решение. Компас в jsp не был хорошим. Вот как это работает:

<logic:equal name="product" property="status" value="<%=String.valueOf(ProductStatuses.SOLD)%>"> 
    // do something 
</logic:equal> 

<logic:equal name="product" property="status" value="<%=String.valueOf(ProductStatuses.IN_STOCK)%>"> 
    // do something else 
</logic:equal>