2018-05-15 11:31

@JFinal 老大,Log的这个需求啥时候加上啊,http://www.jfinal.com/feedback/3116

2018-05-15 11:13

不错!
但如果是servlet3.0的话,容器本身就支持访问resource/META-INF/resource下的静态资源

2018-05-13 22:23

好想法!学习了

2018-04-30 11:12

找到原因了,原来是被enhance的method里调用了super的method
然后super的method也被enhance了
因为super没加anno,所以获取不到
但还是不理解在Interceptor中,通过inv获得的method显示的还是子类的

2018-04-29 15:37

@JFinal
试过了,inv.getTarget()获取的对象确实是enhance过的
诡异的是,只是访问一次,同一个Method却被拦截了两次
第一次被拦截时获取的Anno是空数组,第二次却能返回正确的Anno数组


@Override
public void intercept(Invocation inv) {

Object target = inv.getTarget();
Class targetClazz = target.getClass();
System.out.println(" ---> targetClazz:" + targetClazz.getName());

Method method = inv.getMethod();
Class methodClazz = method.getDeclaringClass();
System.out.println(" ---> methodClazz:" + methodClazz.getName());

Annotation[] annos = method.getAnnotations();
System.out.println(" 注解:" + annos.length);

inv.invoke();
}


控制台输出:

---> targetClazz:itez.plat.base.service.CompService$$EnhancerByCGLIB$$7f7135d3
---> methodClazz:itez.plat.base.service.CompService
注解:0
---> targetClazz:itez.plat.base.service.CompService$$EnhancerByCGLIB$$7f7135d3
---> methodClazz:itez.plat.base.service.CompService
注解:1

JFinal action report -------- 2018-04-29 15:28:17 ------------------------------
Url : GET /plat/login
Controller : itez.plat.base.controller.IndexController.(IndexController.java:1)
Method : login
Parameter : from=http://localhost/www/plat
--------------------------------------------------------------------------------
15:28:17.403 INFO ELog 完成渲染视图(2ms):/common/temp/login.html


单步调试时,两次被拦截的方法看起来一模一样
区别就是第一次无法返回Anno数组,而第二次却能返回
@JFinal

2018-03-23 13:50

这个问题很诡异啊,触碰到什么神秘力量了吗?@JFinal 要不我自己删了吧

2018-03-20 14:42

有点启发,感谢分享

2018-03-14 09:07

多租户的二级域名实现可以看看这个:http://www.jfinal.com/share/320

2018-03-11 22:00

@JFinal 我说的这个功能跟render()关闭response流没关系,因为用的是redirect。参考的Jboot源码还不是最新的,才出现这个问题。
估计海哥也是发现这个问题才进行了优化。

2018-03-11 17:55

@海哥
好吧,我看的是jboot2个月之前的版本,现在的版本确实是放在render()之前了
话说你的源码看起来真是舒服

2018-03-09 16:04

给你说下我的思路,请参考
编写一个通用的前台表单验证脚本,负责两件事:
1、对表单中,所有标记了必填、长度、正则的输入项进行验证,发现不符合的,直接提示,都满足要求,才允许提交表单
2、对上面说的那些输入项,自动生成一个服务器端的验证凭据,也添加到表单中,随原有表单项一起提交到服务器

服务器端创建interceptor,对post过来的,并且验证凭据属性不为空的请求进行验证,根据验证凭据里的要求(必填、长度、正则)对各个字段进行验证,通过后继续执行,否则返回原页面给出错误提示。

这样只需要在form中为输入项添加验证规则即可,之后前台、后台的验证都是自动完成的,直接编写业务逻辑就OK了

2018-03-09 10:54

春梦大神厉害了!