2017-08-22 11:15

@JFinal 我仔细想了下还是感觉没必要去继承AjaxInterceptor,全局拦截器肯定会被调用,我controller级别的拦截器不去处理异常就行了全部交给全局拦截器做就好了

2017-08-22 11:01

@JFinal 我刚刚问题是我自己没搞明白,现在我弄清楚了
原因是我有一个全局AjaxInterceptor拦截器做请求类型判断来区别返回exception后的类型,只做这么一件事情
我又有一个adminInterceptor是个controller级别的拦截器,这个做admin业务用的
因为我执行的那个action上有adminInterceptor这个拦截器,我action异常了首先被adminInterceptor try catch到了,所以AjaxInterceptor没有捕获到异常
为了解决这个问题我让adminInterceptor不try catch 去继承了AjaxInterceptor,让AjaxInterceptor帮我做异常处理,我只做业务逻辑操作,具体代码
public class AdminInterceptor extends AjaxInterceptor {
public void intercept(Invocation ai) {
Controller controller = ai.getController();
RequestContextHolder.setRequestAttributes(controller.getRequest());
if (SubjectKit.isAuthed()) {
super.intercept(ai);
} else {
controller.redirect("/admin/login.jhtml");
}
}
}
请教下波总,我这么实现合不合理?

2017-08-22 10:51

问题已解决,是我有两个全局拦截器,其中一个也try catche但没做处理,后面一个拦截器捕获不到异常不是3.2的问题,是我拦截器的问题

2017-08-22 10:45

这个我做过实验了,异常不会传递给上层的try catch,3.2好像拦截器里把try catch捕获了,我这边好像捕获不到异常,那我如果要实现这个ajax的特殊处理改怎么做呢?

2017-08-21 11:15

@JFinal 而且那些枚举都是写在同一个class中的都是在EnumDefine的这个class,我所有的枚举都再写这里是准备时候写个转表工具去转xml,让策划去改xml的数据这样程序和策划的工作就解耦了。
所以如果EnumDefine这个类里的枚举都是一个方法名是不是就全部被最后一个枚举的public覆盖了?
我前端其实是想去取GOODS_TYPE_GENERAL这个的code我改怎么去写呢

2017-08-21 11:03

@JFinal 如果我想获取GOODS_TYPE_GENERAL这个枚举的code应该怎么写,波总。。。
而且我好多枚举方法名都一样比如
public enum GoodsOrderType {
GOODS_ORDER_TYPE_PRICEASC(1, "priceAsc"), //价格升序
GOODS_ORDER_TYPE_PRICEDESC(2, "priceDesc"), //价格降序
GOODS_ORDER_TYPE_SALESDESC(3, "salesDesc"), //销量降序
GOODS_ORDER_TYPE_SCOREDESC(4, "scoreDesc"), //评分降序
GOODS_ORDER_TYPE_DATEDESC(5, "dateDesc"); //日期降序

private Integer code;
private String msg;

GoodsOrderType(Integer code, String msg) {
this.code = code;
this.msg = msg;
}

public Integer getCode() {
return code;
}

public String getMsg() {
return msg;
}

/**
* 根据枚举的code返回枚举对象
*
* @param code 枚举code值
* @return 枚举对象
*/
public static GoodsOrderType getEnumByCode(Integer code) {
if (code == null) return null;
for (GoodsOrderType status : values()) {
if (status.getCode() == code)
return status;
}
return null;
}
}
那是不是我getCode和GetMsg要换个名字啊比如getXXXCode和getXXXMsg不然是不是方法覆盖了?

2017-08-17 18:42

@JFinal 这边做序列化是出于什么原因?为了数据加密?

2017-08-17 17:31

@JFinal 醍醐灌顶

2017-08-17 15:02

2017-08-13 14:17

@JFinal 我尽量提高自己给jfinal做贡献,但是感觉想达到波总的高度估计这辈子也赶不上了,只能站在巨人的肩膀上写代码

2017-08-13 13:46

@JFinal 换成3.2可以了,save怎么办?save连(string sql, Object[] para)的函数申明都没有实现,我save如果是去sql模板找sql并动态传参如何实现?我想了下如果我用Db.update(insertSqlPara)去放insert sql 语句这样有问题吗波总