修复看板展示时无法加载中文名资源的BUG

This commit is contained in:
datagear 2021-02-24 21:36:49 +08:00
parent dddf94fae8
commit de58aca81d
3 changed files with 16 additions and 8 deletions

View File

@ -7,7 +7,7 @@
图表关联数据集时,可以将其标记为附件数据集,附件图表数据集不会用于绘制图表,
而仅作为用户扩展图表使用(比如构建服务端分页表格图表时需要的总记录数);
ok 修复数据管理编辑页面选择导入键操作有时会出现未填充值的BUG
看板资源中文名处理
ok 修复看板展示时无法加载中文名资源的BUG
待定:
共享看板支持设置密码;

View File

@ -9,6 +9,7 @@ package org.datagear.web.controller;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLDecoder;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@ -345,6 +346,9 @@ public class ChartController extends AbstractChartPluginAwareController implemen
}
else
{
// 处理可能的中文资源名
resName = URLDecoder.decode(resName, IOUtil.CHARSET_UTF_8);
TemplateDashboardWidgetResManager resManager = this.chartShowHtmlTplDashboardWidgetHtmlRenderer
.getTemplateDashboardWidgetResManager();

View File

@ -1,7 +1,7 @@
/*
* Copyright 2018 datagear.tech
*
* Licensed under the LGPLv3 license:
* Copyright 2018 datagear.tech
*
* Licensed under the LGPLv3 license:
* http://www.gnu.org/licenses/lgpl-3.0.html
*/
@ -13,6 +13,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Reader;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@ -777,10 +778,13 @@ public class DashboardController extends AbstractDataAnalysisController implemen
throw new RecordNotFoundException();
String resName = resolvePathAfter(request, "/show/" + id + "/");
if(StringUtil.isEmpty(resName))
if (StringUtil.isEmpty(resName))
throw new FileNotFoundException(resName);
// 处理可能的中文资源名
resName = URLDecoder.decode(resName, IOUtil.CHARSET_UTF_8);
if (entity.isTemplate(resName))
{
HtmlTplDashboardWidgetEntity dashboardWidget = this.htmlTplDashboardWidgetEntityService
@ -814,7 +818,7 @@ public class DashboardController extends AbstractDataAnalysisController implemen
resName = resName.substring(this.dashboardGlobalResUrlPrefix.length());
File globalRes = FileUtil.getFile(dashboardGlobalResRootDirectory, resName);
if (globalRes.exists() && !globalRes.isDirectory())
{
setContentTypeByName(request, response, getServletContext(), resName);