2012-01-25 84 views
8

我试图在Spring 3.1中配置apache瓷砖2.2.2 EL支持。Spring 3中的Apache瓷砖EL支持

根据瓷砖的文档,并从我对谷歌发现,这应该工作,但它好好尝试一下,相反,它会引发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> 

在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

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

,而不是你加'<%@标签库的URI =“http://tiles.apache.org/tags -tiles“prefix =”tiles“%>'在jsp文件的开头?你可以更精确地说'NullPointerException' - 发布完整的堆栈跟踪吗? – Xaerxess

+0

同意@Xaerxess。你能发布你的整个JSP和NPE的堆栈跟踪吗? –

回答

0

使用

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