【问题标题】:compare an object value in <c:if> tag in struts比较struts中<c:if>标签中的对象值
【发布时间】:2013-11-09 08:23:51
【问题描述】:

我正在一个使用 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)%>'}

【问题讨论】:

    标签: java jsp object struts jstl


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨 Nishant,其实我以前试过这个,但它仍然显示为 true。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多