91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Birt支持自定義導出中文名稱

發布時間:2020-06-23 12:20:22 來源:網絡 閱讀:639 作者:genuinecx 欄目:軟件技術

BIRT 是以 Java 和 JavaEE 為基礎為 Web 應用程序開發的基于 Eclipse 的開源報表系統,雖然支持文件導出功能,但不支持導出時動態自定義文件名稱,尤其不支持中文。

Birt默認提供了兩種導出文件時自定義名稱的方法,如下:

  • DefaultFilenameGenerator:報表文件名稱.后綴名
  • TimestampFilenameGenerator:報表文件名稱+yyyyMMdd-HHmmss.后綴名

Birt若實現自定義導出文件名稱,需要實現org.eclipse.birt.report.utility.filename包下的IFilenameGenerator接口,具體操作如下:

  1. 自定義實現IFilenameGenerator 接口
public class CustomExportGenerator implements IFilenameGenerator {
    @Override
    public String getFilename( String baseName, String fileExtension, String outputType, Map options) {
        return baseName  + "." + fileExtension;
    }
}

從上面的代碼看出,IFilenameGenerator 中的方法默認沒有提供自定義文件名稱,這時候只能夠從Map options參數中獲取,當然如果不嫌麻煩的話,也可以重寫getFilename接口。

Object obj = options.get("httpRequest");
    if(obj !=null && obj instanceof RequestFacade){
        RequestFacade request = (RequestFacade)obj;
        exportName = ParameterAccessor.getParameter(request,"__filename");
    }
  1. 配置Birt的導出文件生成類

修改web.xml

<context-param>
        <param-name>BIRT_FILENAME_GENERATOR_CLASS</param-name>
        <param-value>org.eclipse.birt.report.utility.filename.CustomExportGenerator</param-value>
    </context-param>
  1. 支持中文

文件名稱:org.eclipse.birt.report.presentation.aggregation.layout.FramesetFragment
方法: doPreService( HttpServletRequest request, HttpServletResponse response )
操作:

String filename = ParameterAccessor.getExportFilename( new BirtContext( request, response ), format, emitterId );
        String displayName = URLEncoder.encode(filename,"utf-8");
        displayName = displayName .replace("+","%20");
        response.setCharacterEncoding("utf-8");
        response.setHeader("contentType", "text/html; charset=utf-8");
        response.setHeader( "Content-Disposition", //$NON-NLS-1$
                ParameterAccessor.htmlEncode( openType )
                        + "; filename=\"" 
                        + ParameterAccessor.htmlEncode(displayName )
                        + "\"" ); 
  1. 修改Tomcat的編碼

&lt;Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/&gt;

  1. 訪問方式:
    frameset?report=test.rptdesign&format=docx&__filename=測試
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥德县| 梨树县| 黄石市| 江津市| 河北省| 丁青县| 永春县| 鸡东县| 崇信县| 宁都县| 民乐县| 东源县| 阿巴嘎旗| 淮南市| 顺平县| 宜章县| 马边| 抚松县| 巴楚县| 五家渠市| 凤冈县| 若羌县| 和平区| 固安县| 吕梁市| 正镶白旗| 阜宁县| 多伦县| 天镇县| 客服| 徐水县| 石阡县| 翁源县| 大庆市| 华亭县| 南充市| 富锦市| 疏勒县| 富阳市| 彝良县| 肇庆市|