2012-01-25 1 views
8

Я пытаюсь настроить плитки apache 2.2.2 Поддержка EL весной 3.1.Apache плитка EL поддержка весной 3

Согласно плитками документации и от того, что я нашел на Google, это должно работать, но это doens't, вместо этого, он бросает NullPointerException

плитки конфигурации:

<bean class="org.springframework.web.servlet.view.tiles2.TilesViewResolver"> 
    <property name="order" value="1"/> 
</bean> 

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/views/**/views-def.xml</value> 
     </list> 
    </property> 
    <property name="tilesProperties"> 
     <props> 
      <prop key="org.apache.tiles.evaluator.AttributeEvaluator"> 
       org.apache.tiles.el.ELAttributeEvaluator 
      </prop> 
     </props> 
    </property> 
</bean> 

Простые плитки определения :

<tiles-definitions> 
    <definition name="temp.test" template="/WEB-INF/views/temp/test.jsp"> 
     <put-attribute name="test" expression="${test}" /> 
    </definition> 
</tiles-definitions> 

test.jsp

<%--Works fine--%> 
<h2>Called in jsp</h2> 
<p> 
    <c:out value="${test}"/> 
</p> 

<%-- throws NullPointerException --%> 
<h2>Inserted from tiles</h2> 
<p> 
    <tiles:getAsString name="test"/> 
</p> 

Плитка библиотека на ф:

<dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-api</artifactId> 
     <version>2.2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-core</artifactId> 
     <version>2.2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-jsp</artifactId> 
     <version>2.2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-template</artifactId> 
     <version>2.2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-el</artifactId> 
     <version>2.2.2</version> 
    </dependency> 
+2

Вы добавили '<% @ TagLib адреса URI =" http://tiles.apache.org/tags -tiles "prefix =" tiles "%>' в начале jsp-файла? Можете ли вы уточнить «NullPointerException» - отправить полный стек? – Xaerxess

+0

Согласен с @Xaerxess. Не могли бы вы опубликовать весь свой JSP и трассировку стека вашего NPE? –

ответ

0

использование

<!--this works fine with expressions--> 
<tiles:insertAttribute name="test" ignore="true" /> 

вместо

<!-- and this will throw NullPointerException if value is not provided--> 
<tiles:getAsString name="test" ignore="true"/> 
0

Если бы подобное поведение с нулевым указателем во время игры с Spring MVC 3.1.2.RELEASE и плитками 2.2.2. Проверьте свой xerxesImpl, если он является последним 2.9.1. Также проверьте свой taglib, как упоминалось ранее, также проверьте свою регистрацию. Они прекрасно работают вместе:

<org.slf4j.version>1.5.8</org.slf4j.version> 
    <log4j.version>1.2.16</log4j.version> 
    <xercesImpl.version>2.9.1</xercesImpl.version> 
    <org.springframework-version>3.1.2.RELEASE</org.springframework-version> 
    <tiles.core.api.servlet.jsp.version>2.2.2</tiles.core.api.servlet.jsp.version>