2017-10-21 23:24
1. 写一个 AbstractController 继承 Controller, 新增 renderError(int code, String message) 方法;
2. 创建 CustomErrorRender 继承 Render, 构造方法为 CustomErrorRender(int code, String message) 重写 render 方法, response 构造方法传入的 code, message (转换 json 格式)
3. AbstractController 新增的 renderError 如下
public void renderError(int errorCode, String message) {
render = new CustomErrorRender(errorCode, message);
}
4. 自定义 Controller 继承 AbstractController 若需要提示错误消息, super.renderError(1234, "错误");
------
new CustomErrorRender 是不健康的用法, 没必要每次调用都创建一个新的类, 具体如何使用可参考 jfinal 的 render 实现方式.
2017-05-03 13:42
没太懂, 要把很简单的事情变得这么复杂. 下面是切到 3.0 使用 jfinal 自带 sql 管理时写的一个工具类, 初衷和你相同, 就是不想一个一个引入.
public class SqlTemplateKit {
/**
* 初始化 sql 模板到 ActiveRecord
*
* @param arp ActiveRecordPlugin
* @param basePath sql 文件根目录
* @param suffix 文件后缀
*/
public static void init(ActiveRecordPlugin arp, String basePath, String suffix) {
File baseFolder = new File(basePath);
File[] sqlFiles = baseFolder.listFiles(file -> {
return file.getName().endsWith(suffix);
});
if (CollectionKit.isEmpty(sqlFiles))
return;
for (File sqlFile : sqlFiles) {
arp.addSqlTemplate(sqlFile.getName());
}
}
}
直接结束了就, 我是 用的 java 8 的特性写的, 就算不用 lamda 也不会像楼主这代码看起来这么复杂 = =
至于使用
String sqlBasePath = PathKit.getRootClassPath();
arp.setBaseSqlTemplatePath(sqlBasePath);
SqlTemplateKit.init(arp, sqlBasePath, ".sql");
_MappingKit.mapping(arp);
直接这样就好
路径的话, 其实没必要再判断相对路径或者绝对路径了, jfinal 的 sql 管理, 本身就是需要路径的 arp.setBaseSqlTemplatePath , 那么 sql 文件的路径和这个一样就好, 工具再去判断相对绝对不是很累的.
起初没分享出来, 是觉得这个大家应该都会想到, 毕竟撸代码的不会偷懒就 ...
没有贬低之意, 仅是探讨.
要表达的意思是, 没必要把事情搞的这么复杂.
2017-03-20 14:04
@JFinal 在 WEB 开发中, 也仍同目前 JFinal 的路由风格, 这里实现像这样的方式主要是提供数据服务, 可以想成是第三方服务接口, 类似于 环信的实现方式
http://docs.easemob.com/im/100serverintegration/10intro
在 web 工程开发中也不会使用这种 RESTful 格式的, 这种格式很多问题你这都说了.
这就看有需要的人来用了吧.