2011-08-19 20 views
5

Şablon için Apache fayans kullanıyorum ve şablonun bir kısmı başlık metnidir. Bu metin, sayfanın ait olduğu bölüme göre değişir. Her sayfa bir fasulye içerir ve başlık metni o fasulyenin özellikleri kullanılarak oluşturulur. Fasulye her sayfa için farklı bir isim olacaktır. Yani, benim JSP dosyasında böyle bir şey olurdu:Apache döşeme tanımındaki EL ifadeleri işlenmiyor

<div>${myBean.id} - ${myBean.name}</div> 

Ben karo tanımında şu ifadeyi almak istiyorum ve bu çalıştı:

<definition template="/WEB-INF/tiles/layout/mytemplate.jsp"> 
    <put-attribute name="title" expression="${myBean.id} - ${myBean.name}" /> 
</definition> 

Ve şablonda yapmam:

<div class="title-header"><tiles:insertAttribute name="title" /></div> 

Ama sonuç işlenmemiş EL ifadesidir:

<div>${myBean.id} - ${myBean.name}</div> 

Bu yazıyı kısa tutmak için kod burada basitleştirilmiştir, ancak bu tam olarak yapmaya çalıştığım şeydir. Bunu bu şekilde yapmaya çalışmamın sebepleri de var.

EL expresion'un neden işlenmediği konusunda bir fikriniz var mı?

Teşekkür

NOT: Ben JSP ve Apache Fayans için oldukça yeni bu yüzden doğru terminoloji kullanılmış olmayabilir değilim.

+0

Aptalca bir soru mu soruyorum yoksa bana yardım edebilecek kimse yok mu? –

+2

İyi görünüyor, fayans yapılandırmanızı gönderir misiniz lütfen? Gerçekten orada görmek için $ {myBean.id} 'i doğrudan JSP'de değerlendirmeyi denediniz mi? Burada bir göz atın: http://tiles.apache.org/2.1/framework/tutorial/advanced/el-support.html, sınıf yolunuzda fayans-el.jar var mı? EL desteğini etkinleştirmek için org.apache.tiles.evaluator.AttributeEvaluator parametresini ayarlamanız gerekir. –

cevap

6

Sadece Barry'nin cevabının (orijinal yazıya yaptığı yorumda) bana yardımcı olduğunu belirtmek istedim. Sınıf yolunuzda tiles-el.jar olması gerekir (standart EL'yi kullanmak istiyorsanız, muhtemelen MVEL veya OGNL için ilgili JAR'lara ihtiyacınız var demektir). 3. Bahar en TilesConfigurer Fayans 3 otomatik JSP için sınıf denetler

<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles/**/views.xml</value> 
     </list> 
    </property> 

    <!-- Initialize expression language support for use in Tiles definitions. --> 
    <property name="tilesProperties"> 
     <props> 
      <prop key="org.apache.tiles.evaluator.AttributeEvaluator">org.apache.tiles.evaluator.el.ELAttributeEvaluator</prop> 
     </props> 
    </property>   
</bean> 

Fayans: AttributeEvaluator İlişkin

Fayans 2., burada Bahar kullanıyorsanız o ayarlayabilirsiniz nasıl API 2.1 ve Fayans EL JAR'ları. İkisini de bulursa, otomatik olarak EL-farkında bir öznitelik değerlendiricisi oluşturur.