比较struts中<c:if>标记中的对象值</c:if>

时间:2013-11-09 08:23:51

标签: java jsp object struts jstl

我正在使用Struts框架的项目中工作。以下是我在jsp中的代码。

<%=WebConstants.get(WebConstants.PaymentType.DPE)%> <%-- display DPE --%>

${payeeForm.paymentType} <%-- display DPE --%>

${payeeForm.paymentType != 'WebConstants.get(WebConstants.PaymentType.DPE)'} <%-- display true --%>

WebConstants.get(WebConstants.PaymentType.DPE)实际上是一个对象,其值为“DPE”。因此,当我加载它时,我的代码的第一行将在我的页面中显示“DPE”。

payeeForm.paymentType也是我创建的对象,我手动将其值设置为DPE,因此当我加载它时,它在我的页面中也显示“DPE”。

payeeForm.setPaymentType(WebConstants.get(WebConstants.PaymentType.DPE));

我的代码的第三行是将payeeForm.paymentType与对象进行比较。当我加载它时,我希望它在我的页面中显示“false”,但是,它显示为“true”。

如果我硬编码使第三行成为:

${payeeForm.paymentType != 'DPE' } <%-- display false --%>

然后,当我加载它时,它只在我的页面中显示“false”。

我更喜欢将它与Object进行比较而不是硬编码。想问一下,我犯了什么错误。 请建议。

之前我尝试过以下代码,但它仍然显示为true或显示其他内容:

${payeeForm.paymentType != WebConstants.get(WebConstants.PaymentType.DPE)}
${payeeForm.paymentType != <%=WebConstants.get(WebConstants.PaymentType.DPE)%>}
${payeeForm.paymentType != '<%=WebConstants.get(WebConstants.PaymentType.DPE)%>'}

1 个答案:

答案 0 :(得分:0)

我认为WebConstants.get(WebConstants.PaymentType.DPE)周围不应该有引号:

${payeeForm.paymentType != WebConstants.get(WebConstants.PaymentType.DPE)}

由于引号,您可能会比较文字而不是评估值。