2018-12-04 10:47
@小葱x http://www.jfinal.com/doc/5-15
2018-12-03 18:43
@Aizen 模板中要实现继承的功能并不难,但引来的学习成本以及复杂度是用户无法承受的
模板本质是在大量模式化的内容中输出点动态内容,不适宜搞得过于复杂,因为复杂场景是留给后端的
2018-12-03 18:08
@messi_zhm 做一个 MyRender 继承一下你现在用到的 render , 例如 JsonRender
public class MyRender extends JsonRener ,添加 render() 方法,照抄 JsonRender 中的 render 代码,然后去掉 close() 那行代码
最后,用 RenderFactory 切换到自己的实现上去:
public class MyRenderFactory extends RenderFactory {
public Render getJsonRender(...) {
// 关键是这里
return new MyJsonRender(...);
}
}
最后配置一下:
me.setRenderFactoru(new MyRenderFactory());
上面三步,可以将 renderJson 的行为切换到自己 的 MyRender 上去,从而实现去掉 close() 的目的
最后,建议升级到最新版本
还有一个简单的办法是引入一个 BaseController,在其中覆盖 renderJson(...) 方法,变成
public void renderJson(...) {
render(new MyJsonRender(...));
}
然后你所有 contrller 继承自这个 BaseController 即可切换
2018-12-03 17:37
@messi_zhm 用最新版本的 jfinal 3.5 就好,这个版本 jfinal 在 render 中不再 close() 连接,只 flush() 一下
2018-12-03 17:35
@没牙的小朋友 最后给你一个方案:
1:将 webapp 目录整体挪到 src/main/resources 目录之下
2: configEngine 中配置
engine.setBaseTemplatePath("webapp");
engine.setToClassPathSourceFactory());
3:打包描述文件 package.xml 中的复制 src/main/webapp 目录资源到 jar 包中的配置由 "${basedir}/src/main/webapp" 改成 "${basedir}/src/main/resources/webapp"
由于 src/main/resources 属于 class path 的范畴,而这个路径是很稳固的,所以将所有 web 资源放在这里很方便使用,部署环境也很方便
2018-12-03 16:54
@杜福忠 serverless 这类 api 太束手束脚了
话说用上阿里的 serverless 以后,为啥还需要 jfinal 呢?
2018-12-03 16:53
@shiweixian tomcat、jetty、undertow 的源代码我者读过,jetty 顶层架构不错,但代码质量最差, tomcat 代码质量也较差,而且很复杂,而 undertow 的代码质量与设计是最好的
jfinal 选择一个可依赖的底层是极为慎重的,jfinal undertow 要解决的核心问题是极速部署