2013-07-15 19 views
5

Tôi có html, json và xml hoạt động tốt với ContentNegotiatingViewResolver của Spring (Mùa xuân 3.2)Cách sử dụng JasperReportsMultiFormatView với ContentNegotiatingViewResolver?

Cố gắng nhận kết quả đầu ra csv bằng cách sử dụng jasperreports.

Mùa xuân có thể tìm và phân tích cú pháp tệp .jrxml ok. Bắt lỗi sau khi tôi cố gắng để xem một URL .csv:

java.lang.ClassNotFoundException: org.springframework.ui.jasperreports.JasperReportsUtils 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 

Dưới đây là tôi webmvc-config.xml (là nó có đúng không?):

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
     <property name="useNotAcceptableStatusCode" value="true"/> 
     <property name="order" value="1"/> 

     <property name="contentNegotiationManager"> 
      <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> 
       <property name="favorPathExtension" value="true"/> 
       <property name="ignoreAcceptHeader" value="false"/> 
       <property name="mediaTypes"> 
        <map> 
         <entry key="json" value="application/json"/> 
         <entry key="xml" value="application/xml"/> 
         <entry key="csv" value="text/csv"/> 
        </map> 
       </property> 
      </bean> 
     </property> 

     <property name="defaultViews"> 
      <list> 
       <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"> 
        <property name="objectMapper" ref="configuredObjectMapper"/> 
       </bean> 
       <bean class="org.springframework.web.servlet.view.xml.MarshallingView"> 
        <property name="marshaller"> 
         <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/> 
        </property> 
       </bean> 
       <bean id="parties" class="org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView"> 
        <property name="url" value="WEB-INF/parties.jrxml"/> 
        <property name="reportDataKey" value="dataSource"/> 
       </bean> 
      </list> 
     </property> 

     <property name="viewResolvers"> 
      <list> 
       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="order" value="2"/> 
        <property name="prefix" value="/WEB-INF/views/"/> 
        <property name="suffix" value=".jsp"/> 
       </bean> 
      </list> 
     </property> 
    </bean> 

Trả lời

8

Bạn cần mùa xuân-ngữ cảnh hỗ trợ jar trong classpath của bạn. Sử dụng maven:

<dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context-support</artifactId> 
     <version>${spring.version}</version> 
    </dependency>