JFinal 2.0版本,国际化似乎不能在404和500页面上体现

太清 发布于 2015/08/01 14:51
阅读 238
收藏 0

@JFinal 你好,想跟你请教个问题:

JFinal 2.0版本,国际化似乎不能在404和500页面上体现

其他页面都正常,但是出错跳到404或者500等定义好的错误页面上时,不能识别 _res 资源标签

加载中
1
JFinal
JFinal

   通过 com.jfinal.i18n.I18nInterceptor.java 中的public void intercept(Invocation inv)  源码可以看出,第一行代码为 inv.invoke(),这行代码转调了 action 方法,所以如果在 action 中有 404、500 异常,那么后面的 i18n 相关操作还没有进行。

   所以解决方案极度简单,自建一个 MyI18nInterceptor 继承自 I18nInterceptor,覆盖 intercept 方法,将第一行的 inv.invoke() 挪到最后一行去即可。

   jfinal 2.1 版本会对这个地方做出调整。

0
太清

com.jfinal.i18n.I18nInterceptor中有私有的变量 

com.jfinal.i18n.I18n 中也有只能在包里共享的变量(没有声明public)

所以我现在的解决方式是,在项目中新建了一个package com.jfinal.i18n

直接在这个包下新建了一个MyI18nInterceptor ,完全复制com.jfinal.i18n.I18nInterceptor的代码,把inv.invoke()放到最后一行


JFinal
JFinal
这样也行,下一版可以直接去掉新建的文件,无缝升级
返回顶部
顶部