2012-05-18 15 views
6

ELの等価性をチェックするには?ELとequalIgnoreCaseとの比較

JSPページで今すぐ
String a = "hello"; 
a.equalsIgnoreCase("hello"); 

..

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

equalIgnoreCaseとしてpatientNotePresBackingBean.sendPrescriptionをcompateする方法はありますか?

答えて

17

EL 2.2(Servlet 3.0の一部)またはJBoss ELを使用している場合は、ELでそのメソッドを呼び出すだけで済みます。

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

あなたはまだEL 2.2でない場合、その後、あなたの最善の策はJSTLfn: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)}"> 

ただし、大文字と小文字を区別しないようにすることをおすすめします。彼らが何らかの定数を表している場合は、列挙型などの方がよいでしょう。

+0

BalusCに感謝しますが、この場合もadarshrの回答にも 'アトリビュートプレフィックスfnは対応していませんどのようなインポートされたタグライブラリにも ' – Ketan

+0

もちろん、あなたのJSPの上に' fn' taglibを宣言する必要があります(JSF 'h' taglibの場合とまったく同じです)。正確な構文については、ドキュメントを参照してください。http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/fn/tld-summary.html – BalusC

+0

Ohh !!私はそれが 'c' taglibの一部だと思った... – Ketan

3

両方のオペランドを小文字に変換し、それらを等価にすることができます。 JSTLの場合

、私はあなたがJSFに似た何かを行うことができるかどうかだけをチェック

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

を行うだろう。私は後半、JSFの連絡を外してきました。

+0

もし私が間違っていなかったら、最初はまったく別のものに答えましたか?私はそうでなければ、重複した回答を投稿していないでしょう。 – BalusC

+0

いいえ、私はちょうど最初の行に答えて、その後、JSTLの例を追加しました:)さらに、あなたは重複していません。それは私の答えを補う。 – adarshr

+0

これはエラーを返しました... アトリビュートプレフィックス** fn **はインポートされたタグライブラリには対応していません – Ketan

関連する問題