2011-08-19 13 views
5

Używam kafelków Apache do szablonów, a część szablonu jest tekstem nagłówka. Ten tekst zależy od sekcji, do której należy strona. Każda strona zawiera komponent bean, a tekst nagłówka jest tworzony przy użyciu właściwości tego komponentu bean. Komponent bean będzie mieć inną nazwę dla każdej strony. Tak, w moim pliku JSP Chciałbym mieć coś takiego:Wyrażenia EL w definicji płytki Apache nie są przetwarzane

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

chcę dostać ten wyraz w definicji płytek i próbowałem to:

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

I w szablonie zrobić:

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

Ale wynik jest nieprzetworzony wyrażenie EL:

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

Kod został uproszczony, aby treść tego postu była zwięzła, ale jest to dokładnie to, co próbuję zrobić. Są również powody, dla których staram się to zrobić w ten sposób.

Dowolny pomysł, dlaczego wyrwanie EL nie jest przetwarzane?

Dzięki

UWAGA: Jestem całkiem nowy, JSP i Apache Tiles więc nie mogły stosować poprawną terminologię.

+0

Czy zadaję głupie pytanie, czy jest tylko nikt, kto może mi pomóc? –

+2

Wygląda dobrze, czy możesz przesłać swoją konfigurację płytek? Czy próbowałeś ocenić $ {myBean.id} bezpośrednio na stronie JSP, aby sprawdzić, czy rzeczywiście tam jest? Zajrzyj tutaj: http://tiles.apache.org/2.1/framework/tutorial/advanced/el-support.html, czy posiadasz tile-el.jar na swojej ścieżce klas? Aby włączyć obsługę EL, musisz ustawić parametr org.apache.tiles.evaluator.AttributeEvaluator, –

Odpowiedz

6

Chciałem tylko wskazać, że odpowiedź Barry'ego (w swoim komentarzu do pierwotnego wpisu) pomogła mi. Musisz mieć tiles-el.jar na swojej ścieżce klas (jeśli chcesz użyć standardowego EL, prawdopodobnie potrzebujesz odpowiednich JARów dla MVEL lub OGNL).

Płytki 2. Odnośnie AttributeEvaluator, oto jak można ustawić, że nawet jeśli używasz Wiosna:

<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> 

Płytki 3. sprężyny TilesConfigurer do płytek 3 automatycznie sprawdza ścieżkę klasy dla JSP Interfejsy API 2.1 i warstwy EL JAR. Jeśli znajdzie je oba, automatycznie tworzy ewaluator atrybutów EL-aware.