From a471b20fe8075a663f32b3a2ee0cd70c1c63baf7 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 21 十一月 2024 21:59:42 +0800 Subject: [PATCH] 业务类型查询:树查询修改,数据列表查询接口修改(处理模板套模板情况下freemarker表达式的替换处理)。 --- Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/ControllerUtil.java | 66 ++++++++++++++++++++++++++++++-- 1 files changed, 61 insertions(+), 5 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/ControllerUtil.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/ControllerUtil.java index 876a80b..48b5c64 100644 --- a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/ControllerUtil.java +++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/ControllerUtil.java @@ -1,19 +1,17 @@ package com.vci.starter.web.util; -import com.vci.starter.web.pagemodel.PageHelper; +import com.vci.starter.web.constant.VConstant; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.http.MediaType; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.net.URLDecoder; import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -206,6 +204,7 @@ } response.setContentType(contentType); response.setCharacterEncoding("UTF-8"); + //閿欒鏃朵篃闇�瑕佽繖涓弬鏁� Cookie cookie = new Cookie("fileDownload", "true"); cookie.setPath("/"); response.addCookie(cookie); @@ -219,6 +218,35 @@ throw e; } } + + /** + * 灏嗛敊璇殑淇℃伅杈撳叆娴佸啓鍏ュ埌杩斿洖娴佷腑 + * @param response 鍝嶅簲瀵硅薄 + * @param data 鏁版嵁鐨勪俊鎭� + * @throws IOException 鎷疯礉鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + public static void writeDataToResponse(HttpServletResponse response,String fileName,byte[] data,String contentType) throws IOException { + if (StringUtils.isBlank(contentType)) { + contentType = "application/force-download"; + } + response.setContentType(contentType); + response.setCharacterEncoding("UTF-8"); + //閿欒鏃朵篃闇�瑕佽繖涓弬鏁� + response.addHeader("Content-Disposition", "attachment; filename="+ fileName+ ";filename*=utf-8''" + fileName); + Cookie cookie = new Cookie("fileDownload", "true"); + cookie.setPath("/"); + response.addCookie(cookie); + try { + response.getOutputStream().write(data); + } catch (IOException e) { + //鏈夊彲鑳藉鎴风鐨勯摼鎺� + if (logger.isErrorEnabled()) { + logger.error("鍐欏叆鏂囦欢鍒板搷搴旀祦鍑洪敊", e); + } + throw e; + } + } + /** * 灏嗙幆澧冨彉閲忎腑鐨勬煇涓枃浠跺啓鍒拌繑鍥炴祦涓� * @param response 鍝嶅簲瀵硅薄 @@ -292,7 +320,7 @@ * @param isQueryTotal 鏄惁鏌ヨ鎬绘暟 */ public static void setQueryTotal(HttpServletRequest request, boolean isQueryTotal){ - WebThreadLocalUtil.getNeedQueryTotalInThread().set(isQueryTotal?"true":"false"); + WebThreadLocalUtil.setNeedQueryTotalInThread(isQueryTotal?"true":"false"); //request.setAttribute(webProperties.getQueryTotalSessionName(), isQueryTotal); } @@ -323,4 +351,32 @@ tempFileForDownloadMap.remove(uuid); } } + + /** + * 鍐呭缂栫爜 + * + * @param str 鍐呭 + * @return 缂栫爜鍚庣殑鍐呭 + */ + public static String urlEncode(String str) { + try { + return URLEncoder.encode(str, VConstant.UTF8); + } catch (UnsupportedEncodingException e) { + return StringUtils.EMPTY; + } + } + + /** + * 鍐呭瑙g爜 + * + * @param str 鍐呭 + * @return 瑙g爜鍚庣殑鍐呭 + */ + public static String urlDecode(String str) { + try { + return URLDecoder.decode(str, VConstant.UTF8); + } catch (UnsupportedEncodingException e) { + return StringUtils.EMPTY; + } + } } -- Gitblit v1.9.3