10

如何在 EL 中检查 equalIgnoreCase?

String a = "hello";
a.equalsIgnoreCase("hello");

现在在 JSP 页面上..

<h:panelGroup rendered="#{patientNotePrescriptionVar.prescriptionSchedule ==  patientNotePresBackingBean.sendPrescription}">
            ... Some code here ....
</h:panelGroup>

有什么办法可以patientNotePresBackingBean.sendPrescription匹配为equalIgnoreCase?

4

2 回答 2

21

如果您使用的是 EL 2.2(Servlet 3.0 的一部分)或 JBoss EL,那么您应该能够在 EL 中调用该方法。

<h:panelGroup rendered="#{patientNotePrescriptionVar.prescriptionSchedule.equalsIgnoreCase(patientNotePresBackingBean.sendPrescription)}">

如果您还没有使用 EL 2.2,那么最好的办法是通过JSTL fn:toLowerCase()(或fn:toUpperCase())传递两个字符串,然后进行比较。

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<h:panelGroup rendered="#{fn:toLowerCase(patientNotePrescriptionVar.prescriptionSchedule) == fn:toLowerCase(patientNotePresBackingBean.sendPrescription)}">

然而,最好不要让它们区分大小写。如果它们代表某种常量,最好将它们设为枚举或其他东西。

于 2012-05-18T13:27:28.907 回答
5

您可以将两个操作数都转换为小写,然后将它们等同起来。

如果是 JSTL,我会这样做

fn:toLowerCase(patientNotePrescriptionVar.prescriptionSchedule) eq fn:toLowerCase(patientNotePresBackingBean.sendPrescription)

只需检查您是否可以在 JSF 中执行类似的操作。抱歉,我最近与 JSF 失去了联系。

于 2012-05-18T13:23:24.457 回答