2010-03-29 10 views
12

Öznitelik değeri olarak eklenecek senaryo veya EL ifadesine izin vermenin iyi bir nedeni var mı?JSP etiketlerinde <rtexprvalue> false</ rtexprvalue> kullanmak için herhangi bir iyi neden var mı?

<tag> 
    <name>mytag</name> 
    <tag-class>org.apache.beehive.netui.tags.tree.Tree</tag-class> 
    <attribute> 
     <name>attr</name> 
     <required>false</required> 
     <rtexprvalue>false</rtexprvalue> 
     <type>boolean</type> 
    </attribute> 
</tag> 

Ne aşağıda dissallowing için iyi bir neden olabilir:

en Etiketi var diyelim?

<my:mytag attr="${setting}" /> 

cevap

14

Bunu sadece belirli bir JSP için tamamen EL kapatmak için yeteneği gibi, çoğunlukla geriye dönük uyumluluk ölçüsüdür söyleyebilirim.

Belki etiket kütüphane EL önce var ve kendi amaçları için özel bir sözdizimi $ {} kullanır. Belki de özellik değeri sık sık $ {} olan bir değer içeren değerler alır. Böyle bir ayar yapmadan

, (etiket kütüphanede veya JSP) kodu mevcut hala Servlet spec son sürümüne yükselttikten sonra çalışmak için değiştirilmesi gerekir.

+0

Mükemmel cevap :). Teşekkürler –

3

potansiyel da olabilir nitelikleri o run-time ayarlamak için uygun olmadığını (örn. id etiketinin kendisinin başvurmak için). Muhtemelen ${}'un düz metin anlamına geldiği veya herhangi bir EL içeriğinin bir tür özel bağlamda manuel olarak değerlendirildiği bir senaryo bulabilirdiniz.

Ama anahtarı için gerçek nedeni geriye uyumluluk olduğunu düşünüyorum. Özel etiketler JSP'nin EL için yerleşik desteğini önler; Bir taglib'nin altındaki tanımı değiştirerek, ${}'un şimdi özel bir anlamı olması, mevcut şablonların bu etiketi kullanmasını engeller. Geri-uyumluluk için rtexprvalue-false değerine daha güvenli ve JSP 2.0 için yeni taglibs'in yeni davranışı istediğini belirtmesine izin ver.

[evet. Thilo ne dedi. :-)]

İlgili konular