使用Struts 2的Struts菜单中的I18n

时间:2011-02-15 20:03:58

标签: java internationalization struts2 menuitem

我使用带有Struts 2的struts-menu 2.4.3开发了一个菜单。它工作正常,但我需要从属性文件(router-messages.properties)中获取菜单的标题。整个申请就像这样国际化。但它只适用于struts-menu。这是我的menu-config.xml文件:

<Menu name="mainMenu" title="" >
          <Item name="ecfMenu" title="ECFs" roles="FISCO" location="DisconnectedEcfsSearch" />
          <Item name="reportsMenu" title="Relatórios" roles="ADMIN" location="AlarmReportSearch"/>
          <Item name="fiscoMenu" title="Fisco" roles="ADMIN" location="UpdateFiscoForm"/>
          <Item name="alarmMenu" title="Alarmes" roles="ADMIN" location="AlarmNotification"/>
          <Item name="userMenu" title="application.header.users" roles="ADMIN" location="UserSearch"/>
          <Item name="consoleMenu" title="Console" roles="FISCO" location="ConsoleSearch"/>
        </Menu> 

请注意,我正在尝试在“userMenu”项中使用我的属性文件的密钥。所有其他项目都有效,但不是这一项。

这是我的jsp:

   <menu:useMenuDisplayer permissions="rolesAdapter" name="Velocity" 
       config="/WEB-INF/tabs.html">
       <menu:displayMenu name="mainMenu" />
    </menu:useMenuDisplayer>

我四处搜寻,甚至发现一个人有同样的问题,但对他没有回应。 = /

有没有人知道如何让struts-menu识别出我正在使用属性文件的键而不是文字字符串??

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

对于menu-config.xml:

<Menu name="mainMenu" title="" >
       <Item name="userMenu" title="application.header.users" roles="ADMIN" location="UserSearch"/>
</Menu>

对于JSP:

使用此:

<%@ taglib prefix="menu" uri="http://struts-menu.sf.net/tag-el"%>

而不是:

<%@ taglib prefix="menu" uri="http://struts-menu.sf.net/tag"%>

调用菜单:

<menu:useMenuDisplayer bundle="messages" permissions="rolesAdapter" name="Velocity" 
       config="/WEB-INF/tabs.html">
       <menu:displayMenu name="mainMenu" />
</menu:useMenuDisplayer>

对于bundle =“messages”,提供资源包的名称。

我希望它适合你!