5.1.3 资源包的访问
资源包建立好后,就可以对其进行访问了。访问的方式主要有两种:一种在JSP页面中通过<bean:message>标记来访问,另一种是在程序中访问。
在JSP页面中访问资源包,需要使用<bean:message>标记。在使用该标记之前,必须首先部署包含此标记的Struts标记库文件struts-bean.tld,具体操作步骤如下:
(1)将Struts发布包中提供的标记库文件struts-bean.tld复制到待进行国际化的应用程序所在项目的WEB-INF目录下。
(2)在使用该标记库的应用程序的部署文件web.xml的<web-app>元素中添加相应的<taglib>元素,具体语法格式如下:
<taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> |
(3)在使用<bean:message>标记的JSP源文件的开头引入此标记库,具体格式如下:
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
|
在程序中访问资源包主要是在Action类中用到。Action提供了getResources()方法可以获得org.apache.struts.MessageResources类的一个实例。MessageResources代表资源包的一个类,它是一个抽象类,因此需要由Action的基类中的getResources()方法来返回它的一个实例。以下是一段程序示例:
//获得用户的Locale信息 Locale locale = getLocale(request); //获取资源包 MessageResources message = getResources(request); //从资源包中得到消息文本 String title = message.getMessage(locale,"title.login");
|
可以看到在调用了getResources()方法后,便可以获得相应的资源包,接下来,就可以按照request对象中的Locale信息来获取相应资源包中的文本。值得注意的是getMessage()有几种形式,如下所示:
getMessage(String key) getMessage(Locale locale, String key) getMessage(Locale locale, String key, Object[] args)
|
其中,最后一种getMessage()方法可以传入参数给资源包中的文件,更加灵活地实现消息的输出。
【责任编辑:
夏书 TEL:(010)68476606】