2012-01-25 12 views
8

Sto provando a configurare il supporto per le apache 2.2.2 EL in Spring 3.1.Supporto EL di EL Apache per la primavera 3

Secondo la documentazione piastrelle e da quello che ho trovato su google, questo dovrebbe funzionare, ma doens't, invece, getta NullPointerException

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

piastrelle semplice definizione :

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

librerie rivestimenti su 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

Forse si aggiunge '<% @ taglib uri =" http://tiles.apache.org/tags -tiles "prefix =" tiles "%>' all'inizio del file jsp? Puoi essere più preciso su 'NullPointerException' - post full stacktrace? – Xaerxess

+0

Concordato con @Xaerxess. Potresti postare l'intero JSP e la traccia dello stack del tuo NPE? –

risposta

0

uso

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

invece di

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

Had comportamento simile con puntatore nullo mentre gioca con la primavera 3.1.2.RELEASE MVC e piastrelle 2.2.2. Controlla il tuo xerxesImpl se è l'ultimo 2.9.1. Controlla anche il tuo taglib come accennato in precedenza controlla anche la registrazione. Questi funzionano bene insieme:

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