2016-10-14 13:08
jfinal 的 generator 模块,所有类都是面象扩展设计的,所以,你可以通过自定义一个 public class MyBaseModelGenberator extends BaseModelGenerator 覆盖掉父类中的 genClassDefine(...) 方法,可以随心所欲地将 Model 切换成你自己的中间 XxxModel
这个中间 XxxModel 中继承自 Model,里面可以写一些通用的方法,这样你的所有的 models 就拥有了这些扩展方法
此外,除了 BaseModelGenerator 外,其它的类都可以通过这种方式实现千变万化的需求
2016-10-13 15:13
@胖之 弄一个全局拦截器,将当前已经登录的用户,直接放进去,在拦截器通过这行代码即可:
inv.getController().setAttr(LoginService.loginAccountCacheName, loginAccount);
前面的 LoginService.loginAccountCacheName 仅仅是一个字符串而已,可以根据自己的喜好来起个名,后面的 loginAccount 是登录后的用户对象
2016-10-13 15:09
@海风的爸爸 用第一种方法即可,UrlSkipHandler 源代码一直在的,仔细找找 http://git.oschina.net/jfinal/jfinal
2016-10-13 12:03
@lidongxing2016 此外,你的 content path 没有设置为 "",所以掉进了这个坑,前面告知过要看这篇博文: https://my.oschina.net/jfinal/blog/353062
2016-10-13 11:49
@lidongxing2016 补充一下前面的,在建好 action 以后,使用 redirect(actionKey) 重定向到 action ,而不是 redirect(xxx.jsp) 重定向到 jsp
2016-10-13 11:29
@lidongxing2016 手动在浏览器输入 "localhost/agency/jsp/error/reqerror.jsp" 是什么结果? 应该会是同样的错误,这个跟 jfinal 无关了,因为 redirect(url) 仅仅是通知浏览器向 url 发起个请求而已
此外,不建议 redirect 到 jsp 文件,建议所有动态请求全走 action,先建一个 action,然后在这个 action 中使用 render(xxx.jsp) 而非 redirect
2016-10-13 10:49
@lyh061619 感谢解决问题后再次回来分享
2016-10-13 10:48
@合金来了 为了保持 BaseModel 与数据表一致,每次生成器每次运时都会重新生成 BaseModel,所以 BaseModel 是不能手工去改的
解决办法前面说过了,自建一个public MyBaseModelGenerator extends BaseModel,覆盖掉父类中的 genGetter 与 genSetter 方法,然后再用 MyBaseGenerator 代替原来的 BaseModelGenerator即可