如何使用 JSP 表达式语言 (EL) 比较 jsp 中的值
How to compare values in jsp using JSP Expression Language (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>
两者都检查 return 为真,所以显然有些地方不对。
产品的 status
类型为 int
,这是我的 ProductStatuses class,它由 AndroMDA 自动生成,因此位于 .jar 中:
public interface ProductStatuses {
/**
* @author andromda
*/
int SOLD = 1;
/**
* @author andromda
*/
int IN_STOCK = 2;
/**
* @author andromda
*/
int N_A = 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>
我有这张支票 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>
两者都检查 return 为真,所以显然有些地方不对。
产品的 status
类型为 int
,这是我的 ProductStatuses class,它由 AndroMDA 自动生成,因此位于 .jar 中:
public interface ProductStatuses {
/**
* @author andromda
*/
int SOLD = 1;
/**
* @author andromda
*/
int IN_STOCK = 2;
/**
* @author andromda
*/
int N_A = 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>