2012-11-17 73 views
0

我想要一点帮助。我有一个使用Spring MVC和Tile 2的Web应用程序,我昨天添加了displaytag,但是当我想以任何格式导出表格时,iget将其重定向到一个包含表格数据的页面。使用displaytag与弹簧和瓷砖2.0

这里是我的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 


<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 





<filter> 
    <filter-name>ResponseOverrideFilter</filter-name> 
    <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class> 
</filter> 

<!-- Filter mapping for the export --> 


<filter-mapping> 
    <filter-name>ResponseOverrideFilter</filter-name> 
    <url-pattern>*.do</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>ResponseOverrideFilter</filter-name> 
    <url-pattern>*.jsp</url-pattern> 
</filter-mapping> 


<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 


<!-- Filter for the export, need that when using Struts and tiles --> 




<filter> 
<filter-name>CharacterEncodingFilter</filter-name> 
<filter-class> 
org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
<init-param> 
<param-name>encoding</param-name> 
<param-value>UTF-8</param-value> 
</init-param> 
</filter> 
<filter-mapping> 
<filter-name>CharacterEncodingFilter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 
</web-app> 

这里是我的JSP文件

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@page contentType=" ;charset=UTF-8" pageEncoding="UTF-8"%> 
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> 
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %> 


<html> 
<head> 
<title><spring:message code="label.listeggrafo" /></title> 

<style type="text/css"> 
.pagingItem { 
font-weight: normal; 
text-decoration: none; 
color: #747474; 
margin: 0 2px; 
padding: 0 2px; 
background-color: #eeeeee; 
border: 1px solid #bababa; 
font-size: 0.9em; 
line-height: 1.5em; 
} 
.pagingItemCurrent { 
padding: 0 2px; 
margin: 0 2px; 
font-weight: normal; 
color: #FFFFFF; 
background-color: #bfbfbf; 
border: 1px solid #bfbfbf; 
font-size: 0.9em; 
} 
</style> 
</head> 
<body> 
<h1><spring:message code="label.listeggrafo" /></h1> 


<display:table name="eggrafa" class="table" requestURI="" id="eggrafa" export="true" pagesize="10"> 
<display:column property="aa" sortable="true" href="update.html" media="html" 
    paramId="aa" paramProperty="aa" titleKey="label.aa"/> 
<display:column property="diabathmisi" sortable="true" titleKey="label.diab"/> 
<display:column property="apostoleas" sortable="true" titleKey="label.apostol"/> 
<display:column property="tautotitaeg" sortable="true" titleKey="label.tauteg"/> 

<display:setProperty name="export.pdf.filename" value="ActorDetails.pdf"/> 
<display:setProperty name="export.excel.filename" value="ActorDetails.xls"/> 


</display:table> 





</body> 

这里是我的控制器

@RequestMapping(value = "/listeggrafo" , method = RequestMethod.GET) 
    public ModelAndView listeggrafo(@ModelAttribute("eggrafo") Eggrafo eggrafo,@ModelAttribute("typoi") TypoiEggrafou typoi,HttpSession session,HttpServletRequest request) { 
     if(session.getAttribute("name")!=null){ 

      Map<String, Object> model1 = new HashMap<String, Object>(); 
      model1.put("eggrafa", articleService.listeggrafa(session.getAttribute("name").toString())); 


          return new ModelAndView("listeggrafa",model1); 


     }else{ 
      return new ModelAndView("redirect:/articles/login.html"); 
     } 
    } 

当我选择在显示下载和只能重定向我到一个页面

http://localhost:8080/Spring3Hibernate/articles/listeggrafo.html?d-1331701-e=3&6578706f7274=1 

有谁知道为什么发生这种情况的任何格式,任何出口?当我在网上看时,有人说这是瓷砖问题。有什么建议么?

回答

0

可能是url-pattern对ResponseOverrideFilter不正确。请尝试遵循url-pattern。

<filter> 
    <filter-name>ResponseOverrideFilter</filter-name> 
    <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>ResponseOverrideFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

此外,请检查displayTag渲染时生成的网址是什么?您可能需要指定requestURI属性为<displayTag>

+0

是的我的朋友是这样的!谢谢! – user1331582