悠悠隐于市 2011-08-11 22:46
浏览 180
已采纳

关于一个struts2国际化的处理问题。

现在有一个需求是这样的, 在数据库里面有一个menu菜单表, 需要支持多种语言。 然后把菜单的名称配置到国际化资源文件中,数据库中只配置国际化文件的key.

比如有如下几个字段:
menuId menuName prentId URL status
100 menu.user.Manager -1 XXXX.jsp Y
101 menu.modify.user -100 XXXX.jsp Y
102 menu.query.user -100 XXXX.jsp Y

这个菜单表,中的menuName的值,用的是国际化属性ApplicationResouce_en_US.properties 文件的中key;
在action中查询出来后, 放在一个list集合中,然后通过jsp页面的struts2的

'/>


如果直接写成这样, 就支持.

这样显然不行。 因为struts标记不能嵌套使用,也不能支持EL表达式。
甚至把整个都统一设置到数据库中. 试了很多种方法,都不行.我都已经绝望了.

实在不行,就在Action循环通过ResourceBound.getBound("资源文件路径",Locale.ENGLISH);然后再设置到集合中,
这种方式,效率实在是比较低. 就没有用了..

请大家帮我想想办法啊。 实在没有分了啊,.我只有3分. 还是系统送的..

  • 写回答

6条回答 默认 最新

  • myali88 2011-08-15 14:40
    关注

    [quote]
    在action中查询出来后, 放在一个list集合中,然后通过jsp页面的struts2的

    '/>


    如果直接写成这样, 就支持.
    [/quote]
    没太明白作者的意思,上面那种方式无法获取i18n文件中的值吗?我觉得你这里唯一的问题就是要获取的国际化的key是动态的,除此,我不知道是否还有其他问题。
    我是这么做的:
    [code="java"]


    /s:iterator
    [/code]
    其中“keys”保存的是你的Menu对象的数组,然后这样获取每个key对应的属性文件里的值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决