2017-06-29 11:38

@david__ #@layout() 是调用模板函数,一定要理解为将定义为 #define layout() 的模板拿进来也可以

总结一下:
1:定义
#define funcName()
body
#end

2:调用
#@funcName()

2017-06-29 09:32

@lobtao 必然是,而且是最新版本,访问一下这个链接可知道:http://www.jfinal.com/a/a

2017-06-28 21:16

@阿亮 现在已做成了分支,直接可用: https://github.com/jfinal/jfinal/tree/jfinal-java8

注意要使用 java8,并将 eclipse 编译参数打开保留形参名

2017-06-28 21:13

#include("layout.html") 相当于是将 layout.html 中的内容原封不动的拿进来

特别注意一点 layout.html 中的 #define layout() 是函数定义,而不是函数调用,定义与调用有着本质的区别

完全想象成普通程序语言中的方法定义与方法调用就好理解了

还有一个更直接的理解方式:将 layout.html 中的所有内容 copy 过来,放在原来 #include("layout.html") 的位置,删掉原来的 #include("layout.html") 这一行代码

2017-06-28 21:07

注意看一下是不是 tomcat 做了 302 重定向,重定向是会丢失参数的: http://www.oschina.net/question/941098_93842

2017-06-28 17:58

@caoxusheng 这个错误提示与 "./" 没有关系,参考一下这里:http://zhaoningbo.iteye.com/blog/1137215

2017-06-28 17:29

相当有悟性啊,就是这么玩的。除了指令级扩展用得很好以外,还有一处亮点就是 CacheManager 动态创建 cache,连在 ehcache.xml 中的配置都省了

2017-06-28 14:11

在 selenium 的配置中添加更多配置,指令使用具体哪个jetty 版本

或者不使用 jfinal 整合的 jetty,也就不必使用 jetty 8.1.8。jfinal 项目是标准的 java
web 项目,所以好多方式都可以启动 jfinal 项目

2017-06-28 14:08

为 DruidStatViewHandler 指定好你需要使用的路径即可,具体到你的应用是:
new DruidStatViewHandler("/yz/druid");

当然,中间这个 yz 值,你可以想办法动态去获取,然后在 new new DruidStatViewHandler 这个对象时动态指定,像下面这样:
new DruidStatViewHandler(contextPath + "/druid");

2017-06-28 14:07

是执行存储过吗? 用一下 Db.execute(ICallback callback) 这个方法即可

2017-06-28 11:30

很早以前碰到过几个小伙伴也这么来玩的,后来慢慢也改成严格的 MVC 走 action了,因为纯静态页面很少很少,多数是要在页面中使用动态数据的,如果直接走页面,势必要在页面中通过某种方式再去访问数据,这种结构不如 MVC 清晰好维护

当然,在 jfinal 下是很容易支持这种模式的,你甚至可以只有页面和一些工具类,大致这么来玩:
1:创建一个 Handler 用于接管所有请求,将请求直接生成String templateFile 这个对象指向模板文件,大致如下:
public void handle(target, req, res, isHandled) {
String templateFileName = buildTemplateFileName(target);
Engine.use().getTemplate(templateFileName).render(...);
isHandled[0] = true;
}

2:创建一些用于操作数据库的工具类,或者直接用 jfinal 的数据库工具类配置给 Engine
Engine.use().addSharedObject("Db", Db.use());

3:在页面可以这样用了:
#for ( x : Db.find("select * from account where ..." ...))
#(x.userName)
#end

通过上面的方式,你可以完全避免掉 Controller、Interceptor、Render 等所有的东东,一般我不告诉小伙伴们这么来玩

2017-06-27 10:17

UploadController 中有几个 if 分支,判断 ueditor 加载以后发的啥请求,然后 render 给不同的内容,这样的话 ueditor 就可以正确被加载了,就不再需要 jsp 什么事了

2017-06-27 10:17

@liuzy666 服了你了,整合 ueditor 根本不需要 jsp,你仔细看一下 jfinal club 项目,用一个 UploadController 就可以将 ueditor 的所有需要 jsp 的地方接管了

而且可以删掉 ueditor 里面所有 jar 包,所有 jsp 文件,根本不需要

2017-06-26 21:28

直接用 jfinal template engine 少很多麻烦, jsp 都十几年前的技术了,而且很多年没有进步

2017-06-26 17:12

@libg 按照 jfinal 手册中的那个配置截图去设置就好