2011-08-19 4 views
5

私はテンプレート用にApacheタイルを使用しており、テンプレートの一部はヘッダーテキストです。このテキストは、ページが属するセクションによって異なります。各ページにはBeanが含まれ、ヘッダーテキストはそのBeanのプロパティを使用して作成されます。 Beanは各ページごとに異なる名前を持ちます。私はタイル定義でその式を取得したいと私はこの試みたApacheタイル定義のEL式が処理されない

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

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

そして、私は、テンプレート内を:私のJSPファイルで、私はこのような何かを持っているでしょうので 、

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

しかし、結果は、未処理のEL式である:

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

このコードを簡潔にするためにコードはここでは簡略化されていますが、これはまさに私がやろうとしていることです。私がこのようにしている理由もあります。

ELエクスプレッションが処理されない理由は何ですか?

おかげ

注:私は正しい用語を使用していない可能性がありますので、私はJSPとApacheのタイルにかなり新しいです。

+0

私は愚かな質問をしていますか、誰かが私を助けることができる人はいませんか? –

+2

それはうまく見える、あなたのタイルの設定を投稿することはできますか? $ {myBean.id}をJSPで直接評価して実際にそこをチェックしようとしましたか?ここをクリックしてください:http://tiles.apache.org/2.1/framework/tutorial/advanced/el-support.html、classpathにtiles-el.jarがありますか? ELサポートを有効にするには、org.apache.tiles.evaluator.AttributeEvaluatorパラメータを設定する必要があります。 –

答えて

6

バリーの答え(元の記事の彼のコメント)が私を助けてくれたことを指摘したかっただけです。クラスパスにtiles-el.jarが必要です(標準ELを使用する場合は、MVELまたはOGNLに対応するJARが必要になると思われます)。 AttributeEvaluatorについて

タイル2.は、ここにあなたが春を使用している場合、あなたはそれを設定することができます方法は次のとおりです。

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

タイル3. SpringのTilesConfigurerタイル3については、自動的にJSPのクラスパスをチェックしますAPI 2.1およびタイルEL JAR両者が検出された場合は、自動的にEL対応のアトリビュートエバリュエータが作成されます。

関連する問題