Выражения EL в определении плитки Apache не обрабатываются

Я использую плитки Apache для создания шаблонов, и часть шаблона представляет собой текст заголовка. Этот текст зависит от раздела, к которому принадлежит страница. Каждая страница содержит bean-компонент, и текст заголовка создается с использованием свойств этого bean-компонента. Компонент будет иметь другое имя для каждой страницы. Итак, в моем файле JSP у меня будет что-то вроде этого:

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

Я хочу получить это выражение в определении плитки, и я попробовал это:

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

И в шаблоне я делаю:

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

Но результатом является необработанное выражение EL:

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

Код был упрощен здесь, чтобы сделать этот пост кратким, но это именно то, что я пытаюсь сделать. Есть также причины, по которым я пытаюсь сделать это таким образом.

Любая идея, почему выражение EL не обрабатывается?

Спасибо

ПРИМЕЧАНИЕ. Я новичок в JSP и Apache Tiles, поэтому, возможно, я использовал неправильную терминологию.


person Benoit Martin    schedule 19.08.2011    source источник
comment
Я задаю глупый вопрос или просто никто не может мне помочь?   -  person Benoit Martin    schedule 23.08.2011
comment
Выглядит нормально, не могли бы вы опубликовать конфигурацию своих плиток, пожалуйста? Вы пытались оценить ${myBean.id} непосредственно в JSP, чтобы проверить, действительно ли он там? Посмотрите здесь: tiles.apache.org/2.1/framework /tutorial/advanced/, у вас есть tile-el.jar в пути к классам? Чтобы включить поддержку EL, вам необходимо установить параметр org.apache.tiles.evaluator.AttributeEvaluator,   -  person Barry Pitman    schedule 27.10.2011


Ответы (1)


Я просто хотел указать, что ответ Барри (в его комментарии к исходному сообщению) помог мне. Вам нужно иметь tiles-el.jar в пути к классам (если вы хотите использовать стандартный EL; предположительно, вам нужны соответствующие JAR-файлы для MVEL или OGNL).

Плитки 2. Что касается AttributeEvaluator, вот как вы можете настроить его, если используете Spring:

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

Tiles 3. Spring TilesConfigurer для Tiles 3 автоматически проверяет путь к классам для JSP API 2.1 и JAR-файлов Tiles EL. Если он находит их обоих, он автоматически создает оценщик атрибутов с учетом EL.

person Community    schedule 04.12.2011