简体   繁体   English

Spring XML View Resolver无法正常工作

[英]Spring XML View Resolver not working

Using Spring MVC i want to create a PDF from the model. 我想使用Spring MVC从模型创建PDF。

I have created a controller as below 我创建了一个控制器,如下所示

@Controller
@RequestMapping("en/pdfdoc.gov")
@Transactional(propagation=Propagation.SUPPORTS)
public class PDFDocumentController extends SecurityController {

  @RequestMapping(method = RequestMethod.GET,params="action=allAssociations",headers="Accept=*/*")  
  public ModelAndView getAllassociations(HttpServletRequest request, HttpServletResponse response){

    Map<String, Object> revenueData= new HashMap<String, Object>();

    revenueData.put("1/20/2010", "$100,000");
    revenueData.put("1/21/2010", "$200,000");
    revenueData.put("1/22/2010", "$300,000");
    revenueData.put("1/23/2010", "$400,000");
    revenueData.put("1/24/2010", "$500,000");


    return new ModelAndView("PdfRevenueSummary","revenueData",revenueData);

  }
}

and the view 和视图

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.view.document.AbstractPdfView;

import com.lowagie.text.Document;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.PdfWriter;

public class PdfRevenueReportView extends AbstractPdfView{

@Override
protected void buildPdfDocument(Map<String, Object> model, Document document,
        PdfWriter pdfWriter, HttpServletRequest request, HttpServletResponse response)
        throws Exception {
    // TODO Auto-generated method stub
    Table table= new Table(2);

     @SuppressWarnings("unchecked")
    Map<String,String> revenueData = (Map<String,String>) model.get("revenueData");


    table.addCell("Month");
    table.addCell("Revenue");

    for (Map.Entry<String, String> entry : revenueData.entrySet()) {

        table.addCell(entry.getKey());
        table.addCell(entry.getValue());

    }

    document.add(table);


}

}

the dispatcher-servlet.xml dispatcher-servlet.xml

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">


<property name="mediaTypes">
 <map>
   <entry key="atom" value="application/atom+xml"/>
   <entry key="html" value="text/html"/>
   <entry key="json" value="application/json"/>
 </map>
  </property>

  <property name="viewResolvers">
  <list>
  <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix" value="/WEB-INF/pages/"/>
     <property name="suffix" value=".jsp"/>
   </bean>  
  </list>
 </property>
 <property name="defaultViews">
  <list>
 <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
  </list>
 </property>
  </bean> 
 <bean id="pdfview" class="org.springframework.web.servlet.view.XmlViewResolver">
 <property name="order" value="0"/>
   <property name="location">  
            <value>/WEB-INF/spring-pdf-views.xml</value>
   </property>  
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass">
        <value>
            org.springframework.web.servlet.view.tiles2.TilesView
        </value>
    </property>  
</bean>

<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles.xml</value>
        </list>
    </property>
</bean>

spring-pdf-views.xml 弹簧-pdf-views.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean id="PdfRevenueSummary"
    class="in.subrat.nayak.view.PdfRevenueReportView">
</bean>

</beans>

since the tiles.xml is working fine so i have not posted the code part. 由于tiles.xml正常工作,所以我还没有发布代码部分。

the Issue in the above code is that when i return the view from controller by 上面代码中的问题是当我从控制器返回视图时

return new ModelAndView("PdfRevenueSummary","revenueData",revenueData); 返回新的ModelAndView(“ PdfRevenueSummary”,“ revenueData”,revenueData);

it is not getting redirected to the class PdfRevenueReportView as given in the spring-pdf-views.xml 它没有被重定向到spring-pdf-views.xml给出的class PdfRevenueReportView spring-pdf-views.xml

so plz help me to get out of this problem 所以请帮助我摆脱这个问题

Hopes the above question is clear.... 希望以上问题清楚。

after 2 days, i found what i needed 2天后,我找到了我需要的东西

the issue was simple just made the class PDFDocumentController to extend the Class AbstractController 问题很简单,只需使类PDFDocumentController扩展类AbstractController

just made 刚做

public class PDFDocumentController extends AbstractController

instead of 代替

public class PDFDocumentController extends SecurityController

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM