Skip to content

Commit 0ed4d7a

Browse files
committed
修复FreemarkerUtil的Path问题导致JAR包运行时无法获取template的问题。
1 parent 83f15b4 commit 0ed4d7a

File tree

5 files changed

+57
-16
lines changed

5 files changed

+57
-16
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
|更新日期|更新内容|
3535
|----|----|
36+
|20200621|修复FreemarkerUtil的Path问题导致JAR包运行时无法获取template的问题。|
3637
|20200525|1.一些fix,关于封装工具类以及layui模板优化等.<br> 2.优化表备注的获取逻辑.<br> 3.生成时间格式改为yyyy-MM-dd,移除具体的时间,只保留日期|
3738
|20200522|1.新增insert-sql模式,支持对"insert into table (xxx) values (xxx)"语句进行处理,生成java代码(感谢三叔的建议).|
3839
|20200517|1.代码重构!异常处理优化,Freemarker相关工具类优化,简化模板生成部分,通过template.json来配置需要生成的模板,不需要配置java文件.<br> 2.修复包含comment关键字时注释无法识别的问题.(感谢@1nchaos的反馈).<br> 3.赞赏优化,感谢大家的赞赏.<br> 4.新增mapper2(Mybatis-Annotation模板)(感谢@baisi525@CHKEGit的建议).|

generator-web/src/main/java/com/softdev/system/generator/util/FreemarkerUtil.java

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.softdev.system.generator.util;
22

3+
import freemarker.cache.ClassTemplateLoader;
34
import freemarker.template.Configuration;
45
import freemarker.template.Template;
56
import freemarker.template.TemplateException;
@@ -8,10 +9,8 @@
89
import org.springframework.beans.factory.annotation.Autowired;
910
import org.springframework.stereotype.Component;
1011

11-
import java.io.File;
1212
import java.io.IOException;
1313
import java.io.StringWriter;
14-
import java.util.Locale;
1514
import java.util.Map;
1615

1716
/**
@@ -40,20 +39,13 @@ public static String escapeString(String originStr){
4039
*/
4140
private static Configuration freemarkerConfig = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
4241
static{
43-
String templatePath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
44-
int wei = templatePath.lastIndexOf("WEB-INF/classes/");
45-
if (wei > -1) {
46-
templatePath = templatePath.substring(0, wei);
47-
}
48-
4942
try {
50-
freemarkerConfig.setDirectoryForTemplateLoading(new File(templatePath, "templates/code-generator"));
51-
freemarkerConfig.setNumberFormat("#");
52-
freemarkerConfig.setClassicCompatible(true);
53-
freemarkerConfig.setDefaultEncoding("UTF-8");
54-
freemarkerConfig.setLocale(Locale.CHINA);
43+
//2020-06-21 zhengkai 修复path问题导致jar无法运行而本地项目可以运行的bug
44+
freemarkerConfig.setClassForTemplateLoading(FreemarkerUtil.class, "/templates/code-generator");
45+
freemarkerConfig.setTemplateLoader(new ClassTemplateLoader(FreemarkerUtil.class, "/templates/code-generator"));
46+
//freemarkerConfig.setDirectoryForTemplateLoading(new File(templatePath, "templates/code-generator"));
5547
freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
56-
} catch (IOException e) {
48+
} catch (Exception e) {
5749
log.error(e.getMessage(), e);
5850
}
5951
}

generator-web/src/main/resources/application.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ spring:
4040
expose-request-attributes: true
4141
expose-session-attributes: true
4242
expose-spring-macro-helpers: true
43-
#template-loader-path: classpath:/templates/
43+
settings:
44+
number_format: 0.##
45+
#template_loader: /templates/
4446
mvc:
4547
static-path-pattern: /static/**

generator-web/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,25 @@ public class ${classInfo.className}Controller {
128128
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id));
129129
return new ModelAndView("cms/${classInfo.className?uncap_first}-edit","${classInfo.className?uncap_first}",${classInfo.className?uncap_first});
130130
}
131+
132+
/**
133+
* 发布/暂停(如不需要请屏蔽)
134+
*/
135+
@PostMapping("/publish")
136+
public Object publish(int id,Integer status){
137+
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id));
138+
if(${classInfo.className?uncap_first}!=null){
139+
${classInfo.className?uncap_first}.setUpdateTime(new Date());
140+
${classInfo.className?uncap_first}.setStatus(status);
141+
${classInfo.className?uncap_first}Mapper.updateById(${classInfo.className?uncap_first});
142+
return ReturnT.SUCCESS((status==1)?"已发布":"已暂停");
143+
}else if(status.equals(${classInfo.className?uncap_first}.getStatus())){
144+
return ReturnT.SUCCESS("状态不正确");
145+
}else{
146+
return ReturnT.ERROR();
147+
}
148+
}
149+
131150
}
132151

133152

generator-web/src/main/resources/templates/code-generator/ui/layui-list.ftl

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,13 +183,40 @@
183183
});
184184
} else {
185185
layer.msg(responseData.msg, function () {
186-
//window.location = '/index.html';
187186
});
188187
}
189188
}
190189
});
191190
layer.close(index);
192191
});
192+
}else if (obj.event === 'publish') {
193+
layer.confirm('确定要发布吗?', function (index) {
194+
$.ajax({
195+
type: 'POST',
196+
url: "¥{request.contextPath}/${classInfo.className?uncap_first}/publish",
197+
data:{"id":obj.data.${classInfo.className?uncap_first}Id,"status":"1"},
198+
success: function (responseData) {
199+
searchBtn.click();
200+
layer.msg(responseData.msg, function () {
201+
});
202+
}
203+
});
204+
layer.close(index);
205+
});
206+
}else if (obj.event === 'unpublish') {
207+
layer.confirm('确定要停止吗?', function (index) {
208+
$.ajax({
209+
type: 'POST',
210+
url: "¥{request.contextPath}/${classInfo.className?uncap_first}/publish",
211+
data:{"id":obj.data.${classInfo.className?uncap_first}Id,"status":"0"},
212+
success: function (responseData) {
213+
searchBtn.click();
214+
layer.msg(responseData.msg, function () {
215+
});
216+
}
217+
});
218+
layer.close(index);
219+
});
193220
}
194221
});
195222

0 commit comments

Comments
 (0)