Как сравнить значения в JSP с использованием языка выражений JSP (EL)

У меня есть эта проверка в моем JSP:

<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>

Обе проверки возвращают true, поэтому, очевидно, что-то не так. Продукты 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;
}

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

1 ответ

Решение

Хорошо, у меня есть решение. Сравнение в 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>
Другие вопросы по тегам