国际化问题 eval 执行java字符串

吸尘器 2020-01-14 02:38:44
项目比较老,还是ssh+jsp框架,这个不是重点,主要的是遇到了个国际化的问题,希望路过各位能提供个解决方法。
问题如下:
例如:有个系统用户登录日志要做国际化。
当有一个用户登录系统,系统会记录:{用户}在{什么时间}登录了系统XXX。

国际化配置文件
zh_CN:msg0001={0}在{1}登录了系统XXX。
en_US:msg0001={0} logged into XXX system at {1}

国际化处理我用了个自己定义的类,后台调用方法是
new SimpleAppMessage("msg0001_1", "bundle_message", new Object[]{"张三","2020-01-01 12:00:00"}).getMesg()

这句话如果在保存到数据库的时候就进行国际化处理,那么在登录日志列表查询显示的就有的是中文(当登录用户选择的是中文),有的是英文(当登录用户选择的是英文)。

但如果我插入数据库的时候插入
"new SimpleAppMessage(\"msg0001_1\",\"bundle_message\", new Object[]{\"张三\",\"2020-01-01 12:00:00\"}).getMesg()"
或者
"<%=new SimpleAppMessage(\"msg0001_1\",\"bundle_message\", new Object[]{\"张三\",\"2020-01-01 12:00:00\"}).getMesg()%>"

页面会原样这样输出,不会执行(不知道路过的各位大哥有没有jsp中执行java字符串的方法)。

我也想过用java的执行字符串的Jexl,但Jexl不支持 new SimpleAppMessage这种new的方式声明对象,跟不会支持new Object。

...全文
106 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2020-01-14
  • 打赏
  • 举报
回复
java应该没有这种处理,估计要自己解析字符串做相应的处理

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧