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即可
2016-10-12 17:44
@合金来了 怎么解决的,直接改的数据库类型,还是改的 BaseModel 中的代码?
2016-10-12 17:36
在自建的 BaseController 中做这些事情即可,jfinal 社区就是这么用的,直接拿去用就好:
public class BaseController extends Controller {
private Account loginAccount = null;
public Account getLoginAccount() {
if (loginAccount == null) {
loginAccount = getAttr(LoginService.loginAccountCacheName);
if (loginAccount != null && ! loginAccount.isStatusOk()) {
throw new IllegalStateException("当前用户状态不允许登录,status = " + loginAccount.getStatus());
}
}
return loginAccount;
}
public boolean isLogin() {
return getLoginAccount() != null;
}
public boolean notLogin() {
return !isLogin();
}
/**
* 获取登录账户id,默认已经登录,所以不必判断 null 值
*/
public int getLoginAccountId() {
return getLoginAccount().getId();
}
/**
* 使用 ret.getData() 作为参数,调用父类的 renderJson(Object)
* 考虑添加该特性到 jfinal 2.3
*/
public void renderJson(Ret ret) {
renderJson(ret.getData());
}
}