2009-05-09 3 views
4

私はDisplaytagフレームワークを使用してページ番号&エクスポートの目的を使用しています。私はStrut2Tilesインテグレーションも使用しています。Displaytagのエクスポートオプションが機能していません

アクションクラスを呼び出すたびに、私はリストを返します& Displaytag私は自分のページに正常にレコードを表示しています。そのため、私のJSPページのコードは次のようになります。

<s:set name="selectedPageSize" value="selectedPageSize" scope="request"/> 
     <s:set value="accountList" scope="request" name="accountList"/> 
      <display:table name="accountList" export="true" class="table" requestURI="" id="accountList" pagesize="${selectedPageSize}" > 
      <display:setProperty name="export.pdf" value="true" /> 
      <display:column property="id" sortable="true" class="sort-title"/> 
      <display:column property="name" sortable="true"/> 
      <display:column property="contactPerson" sortable="true"/> 
      <display:column property="phone1" sortable="true"/> 
      <display:column property="phone2" sortable="true"/> 
      <display:column property="fax" sortable="true"/> 
      <display:column property="email" sortable="true"/> 
      <display:column property="webSite" sortable="true"/> 
      <display:column property="address1" sortable="true"/> 
      <display:column property="address2" sortable="true"/> 
      <display:column property="countryId.name" title="Country" sortable="true"/> 
      <display:column property="stateId.name" title="State" sortable="true"/> 
      <display:column property="countryId.name" title="City" sortable="true"/> 

      <display:column property="isDeleted" sortable="true"/> 

      <display:column title="Delete"> 
       <s:url id="removeUrl" action="finance/deleteAccount.action"> 
        <s:param name="id" value="#attr.accountList.id" /> 
       </s:url> 
       <s:a href="%{removeUrl}" theme="ajax" targets="accountList">Remove</s:a> 
      </display:column> 

      <display:column title="Update"> 
       <s:url id="updateUrl" action="finance/updateAccount.action"> 
        <s:param value="#attr.accountList.id" name="id"/> 
       </s:url> 
       <s:a href="%{updateUrl}&action=update" targets="accountlist">Update</s:a> 
      </display:column> 

実際、このページはタイル構成で表示されています。

私はエクスポートオプションを有効にしているので、CSV、EXCEL、XMLのようなエクスポートオプションが表示されます。しかし、私はそのCSVリンクをクリックしているときに、私のWebブラウザがハングアップして何も表示されないことを意味します。

私のweb.xmlにもフィルタが追加されています。 1)displaytag-1.2.jar 2)displaytag輸出-POI-1.2.jar :私もdisplaytagのライブラリーの次のリストが含まれていた

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
</filter> 

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

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

<listener> 
    <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class> 
</listener> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/classes/webApplicationContext.xml</param-value> 
</context-param> 

<welcome-file-list> 
    <welcome-file>jsp/welcome.jsp</welcome-file> 
</welcome-file-list> 

:私のweb.xmlは次のようになります3)displaytagポートレット-1.2.jar

私は取得しています例外は次のとおりです。

2009-05-09 12:02:38,234 DEBUG (org.displaytag.tags.TableTag:1524) - Exportfilter NOT enabled 
2009-05-09 12:02:38,312 WARN (org.displaytag.tags.TableTag:63) - Exception: [.TableTag] Unable to reset response before returning exported data. You are not using an export filter. Be sure that no other jsp tags are used before display:table or refer to the displaytag documentation on how to configure the export filter (requires j2ee 1.3). 
ApplicationDispatcher[/PaginationTry2] PWC1231: Servlet.service() for servlet jsp threw exception 
Exception: [.TableTag] Unable to reset response before returning exported data. You are not using an export filter. Be sure that no other jsp tags are used before display:table or refer to the displaytag documentation on how to configure the export filter (requires j2ee 1.3). 

Plzを返信、私はSTUていますこの問題はckです。

+0

私はあなたのweb.xmlを誤読することができますスニペット、しかし私はbeliしないポートレットを開発しているので、プロジェクトにdisplaytag-portlet-1.2.jarの必要はありません(それを含めて問題は起こりません)。 –

答えて

6

DisplayTagのResponseOverrideFilterがチェーンの最初のフィルタ、つまりstruts2フィルタの前になるように、web.xmlでフィルタの順序を変更してみましたか?

1

あなたdisplaytagテーブルを設定します。

<display:table name="sessionScope.searchProviderLRSharingList" 
id="row" 
requestURI="/**ACTION_MAPPING_CALLED_TO_GET_THE_RESULTS**" 
... 
... 
</display:table> 

設定をweb.xmlでのフィルタ:

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

をResponseOverrideFilter ACTION_MAPPING_CALLED_TO_GET_THE_RESULTS

関連する問題