2016-09-18 17:14

如果你的 css 文件使用的是相对路径,那么最终路径与浏览器 url 中的路径有关,所以当你 redirect 时 url 中的路径变了,样式文件路径自然就不对了

解决方法:样式资源文件使用绝对路径即可

2016-09-18 15:48

针对楼主的碰到的问题,通过如下几步解决:
1:建议自建一个publci class MyDialect extends MySqlDialect
2:覆盖掉其中的 replaceOrderBy(String sql) 方法,直接一句 return sql即可
3:arp.setDialect(new MyDialect());
注意,如果是Oracle则是继承OracleDialect,jfinal 2.3 不会再有此问题

2016-09-18 15:43

将 order by 替换为空串,只是为了查询总记录数 totalRow 时性能更好点,因为 select count(*) 去掉 order by 对最终结果是没有影响的

jfinal 2.3 会将这个优化去掉,一是因为不同数据库,不同的 order by 用法很灵活,正则表达式去除order by 子句并不可靠,二是因为在对 mysql 的 select count(*) ... order by ... 测试时表明,是否去除 order by 对性能几乎没有影响,数据库应该是对此自行做了优化

2016-09-18 14:47

与普通的 jfinal 项目配置方式完全一样,让微信公众平台上设置的 url 可以访问到配置的那个路由就可以

2016-09-18 12:26

@clatt 你可以通过 forwardAction("/") 转发到根路由上试试,注意,这里的 forwardAction 参数是指一个 action 路由,而不是静态资源

2016-09-18 12:25

@clatt ActionRender 中的 render() 方法本来就不需要实现,通过查看 com.jfinal.core.ActionHandler.java 源码可知原因,只需要 ActionRender.actionUrl 属性,而不需要其中 render 方法有任何动作

2016-09-18 11:23

@clatt 转发直接用 forwardAction(...)

2016-09-18 11:23

@clatt 问号挂参,如果要保持上次请求的问号挂参,再带一个 true参数:redirect(url, true);

2016-09-17 20:50

直接使用 redirect(url) 即可

2016-09-17 11:21

这种问题极度容易解决,照这个思脉处理一下:
1:查看控制台的 JFinal Action Report 输出,看ExceptionInterceptor是否拦截了该请求
2:确保当前请求拦截以后,在 catch 块中设置断点,看是否捕捉到异常
3:如果没有捕捉到,再检查一下是否有别的拦截器将异常吃掉没有再次抛出
4:注意改过的代码是否不生效,eclipse 有时会有这个 bug
5:终极方案,单步调试,看程序到底怎么走的。建议直接使用终极方案,少走弯路

2016-09-17 11:14

全程没有使用事务,必然会有问题,核心在于任务调度线程在获取 task 记录,并让该记录的 lock 由 0 变 1 的过程在事务中并且是排它的,核心代码大致是如下的形式:

final Ret ret = Ret.create();
boolean isOk = Db.tx(new IAtom() {
public boolean run() {
Task taskList = Db.find("select * from task where lock=0");
String idList = IdKit.join(taskList); // 将 taskList 的所有 id 变成这样:(1,2,3)
int n = Db.update("update task set lock=1 where lock=0 and id in" + idList);
ret.put("taskList", taskList);
return taskList.size() == n && n > 0; // 只有取出来的数量与更新数量相同时才可以提交事务
}
}

if (isOk) {
处理 ret.get("taskList")
} else {
未获取到可处理的 task
}

2016-09-15 17:59

search() 方法中是在 render("article_search_list.jsp"),而提示却是 /admin/article/search.jsp 页面找不到,很明显是该 render 方法未被执行,进而推断出 search() 方法未被执行,再进而推断出是有拦截器未让该请求前行至 search() 方法

看一下控制台输出的 JFinal action report 就全明白了

2016-09-15 10:42

@海哥 应该是四年多,简单够用,quartz 过于庞大

2016-09-14 17:45

@zy625080069 jfinal 手册中有详细说明,在此下载手册:http://www.jfinal.com/download?file=jfinal-2.2-manual.pdf

2016-09-14 17:30

估计是 ActiveRecordPlugin 没启动