2012-01-25 32 views
8

Tôi đang cố gắng định cấu hình các lát apache 2.2.2 Hỗ trợ EL trong Mùa xuân 3.1.Gạch Apache hỗ trợ EL vào Mùa xuân 3

Theo tài liệu gạch và từ những gì tôi đã tìm thấy trên google, điều này sẽ làm việc, nhưng nó doens't, thay vào đó, nó ném NullPointerException

gạch cấu hình:

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

gạch đơn giản định nghĩa :

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

Gạch thư viện trên 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

Bạn có thêm '<% @ taglib uri =" http://tiles.apache.org/tags -tiền "prefix =" tiles "%>' ở đầu tệp jsp? Bạn có thể chính xác hơn về 'NullPointerException' - đăng toàn bộ stacktrace không? – Xaerxess

+0

Đồng ý với @Xaerxess. Bạn có thể đăng toàn bộ JSP của bạn và theo dõi ngăn xếp của NPE của bạn? –

Trả lời

0

sử dụng

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

thay vì

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

Đã hành vi tương tự với con trỏ null khi chơi với mùa xuân 3.1.2.RELEASE MVC và gạch 2.2.2. Kiểm tra xerxesImpl của bạn nếu là 2.9.1 mới nhất. Ngoài ra kiểm tra taglib của bạn như đã đề cập trước đó cũng kiểm tra đăng nhập của bạn. Những mỹ làm việc cùng nhau:

<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> 
Các vấn đề liên quan