2012-05-18 21 views
6

Jak sprawdzić równeIgnoreCase w EL?Porównanie EL z równąIgnoreCase

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

Teraz na stronie JSP ..

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

Czy istnieje jakiś sposób, aby compate patientNotePresBackingBean.sendPrescription jako equalIgnoreCase?

Odpowiedz

17

Jeśli używasz EL 2.2 (część Servlet 3.0) lub JBoss EL, powinieneś móc wywołać tę metodę w EL.

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

Jeśli nie jesteś jeszcze na EL 2.2, wówczas najlepszym przechodzi przez oba ciągi JSTLfn:toLowerCase() (lub fn:toUpperCase()), a następnie porównanie go.

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

Lepiej jednak byłoby nie rozróżniać wielkości liter. Jeśli reprezentują jakieś stałe, lepiej je wyłudzić lub coś w tym stylu.

+0

Dzięki BalusC, ale w tym przypadku również odpowiedź adarshr nawet daje błąd taki jak: 'Przedrostek atrybutu fn nie odpowiada do każdej zaimportowanej biblioteki znaczników ' – Ketan

+0

Oczywiście musisz zadeklarować taglib' fn' na górze strony JSP (dokładnie tak, jak zrobiłeś to dla 'h' taglib JSF). Sprawdź dokładną składnię dokumentacji: http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/fn/tld-summary.html – BalusC

+0

Ohh !! Myślałem, że jest częścią "c" taglib ... – Ketan

3

Można przekształcić oba operandy na małe litery, a następnie utożsamiać je.

W przypadku JSTL, zrobiłbym

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

Wystarczy sprawdzić, czy można zrobić coś podobnego w JSF. Ostatnio nie mam kontaktu z JSF, przepraszam.

+0

Jeśli się nie mylę, najpierw odpowiedziałeś na coś zupełnie innego? W innym przypadku nie opublikowałbym duplikowanej odpowiedzi. – BalusC

+0

Nie, właśnie odpowiedziałem na pierwszą linię, a później dodałem przykład JSTL :) Poza tym twój nie jest duplikatem. Uzupełnia moją odpowiedź. – adarshr

+0

Dało to błąd ... Przedrostek atrybutu ** fn ** nie odpowiada żadnej zaimportowanej bibliotece znaczników – Ketan