Message Resources是何物
?
Message Resources消息资源是Strus框架定义的一组消息资源包,用来简化开发、支持国际化的,开发者可以自由的将页面Title,Label Name,Error Message等显示信息定义在不同的资源文件中,然后在jsp、java中调用并显示,在需要更改语言时,只要更改应用的配置就可以实现调用不通的资源文件从而实现国际化。
2 如何设置应用系统的Message Resources?
有两种方式在应用系统中定义Message Resources,由于Struts支持模块化,所以在项目各小组并行开发的时候,可以构建不通Message Resources,当然每个项目组成员也可以为自己模块、包定义不同的Message Resources。
1、基于web.xml的配置:
配置文件如下:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>com.leppard.cppf.CPMaster</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>config/systemmanager</param-name>
<param-value>/WEB-INF/struts-config-systemframe.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name> application </param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
|
这个web配置文件中定义了两个模块,一个是应用主模块config,一个是子模块config/systemmanager。
参数application对应的是struts应用主模块的的资源配置文件,可以用“,”号隔开多个配置文件,如:
<init-param>
<param-name> application </param-name>
<param-value>ApplicationResources,ApplicationResources2</param-value>
</init-param>
|
资源配置文件格式如下:
message.message=Missing message for key {0}
message.property=Property for message key must be a String
message.resources=Missing resources attribute {0}
page.selector=Invalid page context selector {0}
label.systemmanager.index.title=txshine
label.login.username=UserName
label.login.password=Password
|
另一种方法是在模块的配置文件/WEB-INF/struts-config.xml定义,如
<struts-config>
<action-mappings>
<action path="/exitAction" type="com.leppard.cppf.action.ExitAction">
<forward name="exit" path="exit.jsp" redirect="true" />
</action>
</action-mappings>
<message-resources key="myresource" parameter="resources.ApplicationResources_cn"/>
</struts-config>
|
Key是消息资源的模块名,parameter是消息资源的名称,resources.ApplicationResources_cn表示资源文件在WEB-INF/classes/resources目录下,文件名为ApplicationResources_cn。
3 如何引用Message Resources?
3.1 引用示例
<bean:message key="label.login.password"/>
<bean:message bundle="myresource/systemmanager" key="label.systemmanager.index.title"/>
<bean:message bundle="myresource" key="label.systemmanager.index.title"/>
|
在jsp页面中引用Message Resources,首先要引入标签库
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
3.2 Message标签
message标签用来引用在Message Resources文件中定义的各种消息,message标签有以下几个属性:
1、Scrope属性,默认为PageContext.APPLICATION_SCOPE:范围见org.apache.struts.util. RequestUtils
scopes.put("page", new Integer(PageContext.PAGE_SCOPE)); 页面范围
scopes.put("request", new Integer(PageContext.REQUEST_SCOPE)); 请求范围
scopes.put("session", new Integer(PageContext.SESSION_SCOPE)); 会话范围
scopes.put("application", new Integer(PageContext.APPLICATION_SCOPE)); 应用范围,资源配置文件中定义的message存在于整个应用中,所以在应用中的任何页面都可以引用到。
2、Local属性
本地属性或语言属性
3、name属性
名称,用来引用的Key
4、Bundle
模块名
5、arg[]
参数,传递给message消息的参数,动态定义的message,如
page.selector=Invalid page context selector {0}
通过传入arg[0]=index,显示出
Invalid page context selector index
3.3 不同模块的引用
1、主模块web.xml中配置的消息资源,在应用时不需要加bundle。
2、在主struts-config.xml主配置的消息资源,如果设定了资源的key属性,则在引用的时候需要指定bundle,如,
<message-resources key="myresource" parameter="resources.ApplicationResources_cn"/>
引用时
<bean:message bundle="myresource" key="label.systemmanager.index.title"/>
注意message的bundle和资源配置文件message-resources中的key一致
3、在子模块config/Sub
假设有在web.xml中指定了子模块如下:
<init-param>
<param-name>config/systemmanager</param-name>
<param-value>/WEB-INF/struts-config-systemframe.xml</param-value>
</init-param>
/WEB-INF/struts-config-systemframe.xml中指定了资源文件
<message-resources key="subresource" parameter="resources.subApplicationResources_cn"/>
在引用时的bundle就应该是资源文件模块名+应用子模块名,如
<bean:message bundle=" subresource / systemframe " key="label.systemmanager.index.title"/>
相关推荐
### Bean-Message 标签详解 #### 一、Bean-Message 标签概述 在Struts框架中,`<bean:message>` 标签主要用于显示国际化(I18N)消息。该标签允许开发者轻松地从资源文件中读取并显示预定义的消息文本,这对于创建...
这个标签主要用于从资源包(Resource Bundle)中获取并显示消息。资源包通常是以.properties文件格式存储的,其中包含了一组键值对,键代表消息标识,值则对应不同语言环境下的具体文本。 1. **创建资源文件** - ...
此外,还有其他辅助标签,如`<bean:cookie>`用于获取Cookie值,`<bean:header>`用于获取HTTP请求头信息,`<bean:include>`用于包含其他资源,`<bean:resource>`则用于获取Web应用内的资源。 总的来说,Struts1标签...
* bean:message:取回国际化消息,例如错误信息、提示信息等。 * bean:page:将一个 bean 绑定到 page 作用域中,以便其它标签可以使用该值。 * bean:parameter:取回请求参数的值,例如 GET 或 POST 请求的参数。 *...
- **其他标签**:如`<cookie>`, `<header>`, `<include>`, `<parameter>`, `<resource>`, `<size>`, `<struts>`, `<write>`等,它们分别处理特定任务,如cookie管理、资源加载、集合大小等。 4. **HTML标签库**: ...
- `bean:message`:这个标签与资源文件配合实现国际化,通过`key`属性引用资源文件中的特定消息。 - 其他标签,如`bean:size`、`bean:include`和`bean:resource`,分别用于获取集合大小、包含其他页面和访问静态...
此外,还有`<bean:message>`显示资源文件信息,`<bean:resource>`装载Web资源到JavaBean,`<bean:struts>`访问Struts配置对象,以及`<bean:include>`包含Web资源。`<bean:define>`用于定义变量,`<bean:size>`获取...
9. **bean:message**和**bean:resource**:这两个标签用于实现国际化,显示本地化的消息或资源。 在实际开发中,了解并熟练掌握这些标签的使用,能大大提高代码的可读性和维护性。通过阅读Struts标签中文手册,...
#### 4.1.4 消息资源(Message Resource) Struts1支持国际化(I18N),这意味着应用可以在不同的语言环境中提供服务。`<bean:message>`标签用于显示消息资源,这些资源通常存储在.properties文件中。例如: ```...
5. `<bean:message>`:这个标签用于获取资源包(Resource Bundle)中的消息,常用于国际化(i18n)。 ```jsp <bean:message key="greeting" bundle="localeMessages" /> ``` 通过深入学习和理解bean标签的使用,...
- **访问Web应用资源**:例如,`<bean:message>`用于显示资源文件中的信息,`<bean:resource>`加载Web资源到JavaBean,`<bean:struts>`访问Struts的内部配置对象,`<bean:include>`包含Web资源。 - **定义和输出...
8. `bean:resource`:此标签用于读取应用程序的资源文件,如图片、CSS或JavaScript文件,以便在页面上引用。 9. `bean:size`:这个标签用于计算集合(如数组、List、Map等)的大小,或者获取HTTP请求参数的数量。 ...
### JSTL标签详解及实例 #### 一、概述 JSTL(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一个不断完善的开源JSP标签库,由Apache的Jakarta小组负责维护。该标签库专为简化JSP页面开发...
2. CORS(Cross-Origin Resource Sharing,跨源资源共享):是一种基于HTTP头部的机制,允许服务器指定哪些域有权限访问资源。通过在服务器端设置正确的响应头部,可以让指定的域进行跨域请求,从而实现安全的跨域...
它们包括`<bean:cookie>`、`<bean:define>`、`<bean:header>`、`<bean:include>`、`<bean:message>`、`<bean:page>`、`<bean:parameter>`、`<bean:resource>`、`<bean:size>`、`<bean:struts>`和`<bean:write>`等。...
5. **`<bean:message>`**: 显示国际化消息,通常与资源文件配合使用,可以根据用户的语言环境显示相应的文本。 6. **`<bean:page>`**: 提供对请求范围内的属性的访问,可以获取当前页面上下文中的任何属性。 7. **`...