与equalsIgnoreCase进行EL比较

时间:2012-05-18 13:21:26

标签: java jsp jsf el

如何检查EL中的equalsIgnoreCase?

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

现在在JSP页面上..

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

有没有办法将patientNotePresBackingBean.sendPrescription比作equalsIgnoreCase?

2 个答案:

答案 0 :(得分:17)

如果您正在使用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)}">
但是,更好的是,不要让它们区分大小写。如果它们代表某种常量,最好使它们成为枚举或其他东西。

答案 1 :(得分:4)

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

如果是JSTL,我会这样做

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

检查一下你是否可以在JSF中做类似的事情。我最近一直与JSF脱节,抱歉。