Browse Source

encode reportName to avoid chinese name problem

sunyj 7 years ago
parent
commit
7f0eeda2c0

+ 7 - 1
report/src/main/java/com/uas/report/controller/PrintController.java

@@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.File;
 import java.io.IOException;
 import java.io.IOException;
 import java.net.URLDecoder;
 import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.sql.SQLException;
 import java.sql.SQLException;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -135,7 +136,12 @@ public class PrintController {
             // 预览或打印
             // 预览或打印
             case PREVIEW:
             case PREVIEW:
             case PRINT:
             case PRINT:
-                response.sendRedirect(String.format("../preview?id=%s&printType=%s&reportName=%s", id, printParameter.getPrintType(), printParameter.getReportName()));
+                String reportName = printParameter.getReportName();
+                String previewUrl = String.format("../preview?id=%s&printType=%s", id, printParameter.getPrintType());
+                if(!StringUtils.isEmpty(reportName)){
+                    previewUrl += "&reportName=" + URLEncoder.encode(reportName, "UTF-8");
+                }
+                response.sendRedirect(previewUrl);
                 break;
                 break;
             case PDF:
             case PDF:
                 export(id, ExportType.PDF.name(), true, request, response);
                 export(id, ExportType.PDF.name(), true, request, response);

+ 4 - 1
report/src/main/webapp/resources/js/preview/app.js

@@ -23,12 +23,15 @@ var winWidth;
 var pdfPath;
 var pdfPath;
 // 参数打印类型,可能为PRINT、PREVIEW
 // 参数打印类型,可能为PRINT、PREVIEW
 var printType = getParameter("printType");
 var printType = getParameter("printType");
+var reportName = getParameter("reportName");
 // 是否正在渲染页面
 // 是否正在渲染页面
 var rendering = false;
 var rendering = false;
 // 下一个要渲染的页面
 // 下一个要渲染的页面
 var nextRenderingPage;
 var nextRenderingPage;
 
 
-document.title = getParameter("reportName");
+if(reportName){
+    document.title = reportName;
+}
 showExportButtons();
 showExportButtons();
 getWindowWidth();
 getWindowWidth();
 loadData();
 loadData();