2012-01-25 7 views
8

Estoy intentando configurar apache tiles 2.2.2 EL support en Spring 3.1.Apaches conecta el soporte EL en Spring 3

De acuerdo con la documentación de los azulejos y de lo que he encontrado en Google, esto debería funcionar, pero doens't, en cambio, que arroja NullPointerException

Azulejos config:

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

azulejos simples definición :

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

Azulejos en las bibliotecas cp:

<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

¿Ha agregado '<% @ taglib uri =" http://tiles.apache.org/tags -tiles "prefix =" tiles "%>' al principio del archivo jsp? ¿Puedes ser más preciso acerca de 'NullPointerException' - publicar stacktrace completo? – Xaerxess

+0

De acuerdo con @Xaerxess. ¿Podría publicar su JSP completa y el seguimiento de la pila de su NPE? –

Respuesta

0

uso

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

en lugar de

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

tenido un comportamiento similar con puntero nulo mientras que juega con el resorte 3.1.2.RELEASE MVC y azulejos 2.2.2. Compruebe su xerxesImpl si es el último 2.9.1. También revise su taglib como se mencionó anteriormente también verifique su registro. Estos funcionan bien juntos:

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