问题如下: 在项目中规定, 如果render的是一个view 则请求的路径后必须加.html,没有加.html则renderError(404);
如果render的是一个Json,则需要判断请求的路径有没有.json 如没有加也renderError.
实现这个规则,如果写在handler里 则取不到render. 写在Interceptor中 必须要在inv.invoke()之后,才可以取到render.这样就可以按之前的逻辑来制定规则. 但如果该action做的是一个save或update的一个动作. 虽然最后renderError了,但对数据库的操作 还是发生了. 能在handler阶段,判断一下即将render的类型吗? 或者有没有什么办法可以避免数据库发生了实际的操作呢? 或者其他的实现思路?
项目:JFinal
当然,也不是绝对没有办法,例如写一个分析器,分析你的源代码,先预分析你的程序结构,分析到的结果做为自己这部分程序的行动指南
我再说的直白一点,你下面有三行代码:
int a = 123;
int b = a + 456;
render("index.html");
然后我希望在 int a = 123; 这行代码这里就知道第三行代码的 render 里头有什么参数,而这个时候程序还没走到第三行呢