Как сравнить значения в 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>