<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    You smiled and talked to me of nothing and I felt that for this I had been waiting long.

    The trees come up to my window like the yearning voice of the dumb earth.

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      19 Posts :: 10 Stories :: 25 Comments :: 0 Trackbacks
    以往,在webwork中實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)為csv文本時(shí),采用的是之前自己實(shí)現(xiàn)的csv result,但是這個(gè)實(shí)現(xiàn)有個(gè)缺陷就是對象嵌套不支持,而且需要構(gòu)造dto遍歷獲取列表進(jìn)行列表字段顯示的封裝,且在webwork配置文件要羅列出需要導(dǎo)出的字段,過于繁瑣。
    于是產(chǎn)生了采用直接用freemarker作為導(dǎo)出csv文件模板的想法,這樣后臺(tái)只做查詢列表數(shù)據(jù)的獲取,配置文件只需要定位到指定freemarker模板,而且導(dǎo)出排版可以在freemarker中更靈活的得到控制。
    其中,在中文亂碼問題上尤其需要注意的是,一定要設(shè)置模板文件的編碼。
    以下是實(shí)現(xiàn)實(shí)例:

    1 
    2 public String sampelExport()throws Exception{
    3     samplelist = SampleService.getAll();
    4     return SUCCESS;
    5 }

    //samplelist的getter不要忘記哦。

    SampleObject具有name屬性,類型為String,createDate屬性,類型為java.util.date,emails屬性,類型為java.util.list,為一個(gè)email封裝對象列表,status屬性,類型為Enum,提供按locale獲取顯示內(nèi)容方法。

    1 <action name="sampleexport" method="sampleExport"
    2      class="org.hook.webwork.SampleExportAction">
    3      <result type="freemarker" name="success">
    4          template/default/sampleexport.ftl
    5      <result>
    6 </action>
    7 

    1 <#ftl encoding="GBK"> 
    2 <#if response?exists>${response.setHeader("Content-Disposition","attachment; filename=sample_export.csv")}${response.setHeader("Cache-  Control", "cache")}${response.setContentType("text/plain; charset=GBK")}${action.getText('org.hook.sampleobject.name')},
    ${action.getText('org.hook.sampleobject.createdate')},${action.getText('org.hook.sampleobject.emails')},
    ${action.getText('org.hook.sampleobject.status')}
    </#if>
    3 <#if samplelist?exists>
    4 <#list samplelist as sampleobject>"${sampleobject.name}","${sampleobject.createDate?date}","<#list sampleobject.emailss as email>${email.fullinfo} </#list>",<#if sampleobject.status?exists&&sampleobject.status.getValue(locale)?exists>
    ${sampleobject.status.getValue(locale)}</#if>
    5 </#list>
    6 </#if>
    注意:沒有行號的地方說明代碼不要換行,要不導(dǎo)出的文件位置會(huì)有誤差。
    posted on 2008-11-07 10:41 鉤子 閱讀(1563) 評論(0)  編輯  收藏 所屬分類: jeeopensources工作筆記
    主站蜘蛛池模板: 亚洲国产精品成人久久蜜臀| 国产精彩免费视频| 亚洲国产综合无码一区二区二三区| 91丁香亚洲综合社区| 最近中文字幕mv免费高清视频7| 精品久久亚洲中文无码| 亚洲国产亚洲综合在线尤物| 亚洲视频免费在线播放| 国产在线不卡免费播放| 亚洲GV天堂GV无码男同| 91精品啪在线观看国产线免费| 亚洲av日韩av不卡在线观看| 99在线视频免费| 在线观看国产区亚洲一区成人 | 亚洲人成免费网站| 欧美在线看片A免费观看| 香蕉视频亚洲一级| 91免费资源网站入口| 亚洲精品无码你懂的| 亚洲国产一成久久精品国产成人综合 | 亚洲熟妇成人精品一区| 特级无码毛片免费视频尤物| 亚洲最新视频在线观看| 一个人免费高清在线观看| 久久亚洲精品无码网站| 中文字幕日韩亚洲| 永久免费在线观看视频| 亚洲av日韩综合一区久热| 久久伊人亚洲AV无码网站| 在线观看www日本免费网站| 亚洲日韩AV一区二区三区中文 | 国产jizzjizz视频免费看| a在线视频免费观看在线视频三区| 亚洲va久久久噜噜噜久久男同 | 国产精品无码免费视频二三区| 五月天婷婷免费视频| 亚洲综合激情视频| 亚洲国产黄在线观看| 84pao国产成视频免费播放| 国产亚洲福利精品一区二区| 日韩亚洲Av人人夜夜澡人人爽|