2019-05-06 15:40
@absir 字符 # 可以直接输出,不需要转义,例如:
#abc
再例如:
##
你的代码之所有碰到这个问题,是因为字符 # 后面紧跟了一个 enjoy 关键字,例如:
#if
#for
#end
如果确实要原样输出这些代码,可以有下面这些办法,选其一:
1:在字符 # 与关键词之间换行,例如:
#
if(edit && edit.allowPath('#(att.path)'))")
2:用输出指令输出,例如:
#("if(edit && edit.allowPath('#(att.path)'))")
当然,也可以只输出一小部分内容:
#("#if") (edit && edit.allowPath('#(att.path)'))
甚至像你的代码中类似,只输出一个字符:
#("#") if (edit && edit.allowPath('#(att.path)'))
3:用原样输出将需要的地方包起来,例如:
#[[
#if (...)
...
]]#
最简单就是第一种方式,回车一下搞定
2019-05-06 12:25
@hxu 这里的重点是,jfinal 的数据库操作是对 JDBC 的极薄封装,性能在理论上接近 JDBC,性能的问题需要从别的方面优化,而不是 jfinal 层面
2019-05-06 10:31
@年轻人 大致如下:
// 创建一个自己实现的 writer
Writer writer = new MyWriter();
// 将创建好的 writer 放入一个 static 变量,便于随时获取
WriterKit.set(writer);
// 切换 writer
ActionReporter.setWriter(writer);
// 随时获取
Writer writer = WriterKit.get();
2019-05-06 10:00
@qyq1103 tomcat 部署不会理会 mainconfig 中的 main 方法,而是通过 web.xml 中配置的 JFinalFilter 入口启动的
2019-05-02 19:49
@Sohnny 放长假才好写大功能,上大创新,时间片比较长,可以深度思考
2019-05-02 19:47
@hb963724769 这种注入方式主要是为了省代码,以及可以通过配置来改变被注入的实现类
如果 service 很多,可以将配置放在外部配置文件中,然后用一个 for 循环去加载,类似于:
for ( String c : mappings) {
String[] array = c.splite("|");
AopManager.me().addMapping(Class.forName(array[0]), Class.forName(array[1]));
}
如果觉得配置文件还是麻烦,可以写一个扫描工具类,扫描所有实现类再动态 mapping,办法总比问题多