Struts2配置全局资源与国际化信息详解

需积分: 11 0 下载量 155 浏览量 更新于2024-07-12 收藏 318KB PPT 举报
"本文主要介绍了如何在Struts2框架中配置全局资源文件并输出国际化信息。Struts2是一个基于MVC架构的Web框架,相比于Struts1,它具有无侵入式设计、拦截器、类型转换器、多视图支持和更强大的输入验证等优势。在Struts2中,我们可以将资源文件定义为全局资源,便于在JSP页面和Action中访问国际化信息。此外,文章还简述了搭建Struts2开发环境的步骤,包括获取所需jar文件、编写配置文件以及在web.xml中添加启动配置。" 在Struts2框架中,配置全局资源文件是通过在`struts.xml`配置文件中设置`struts.custom.i18n.resources`常量来实现的。例如,如果资源文件的基本名为`itcast`, 配置如下: ```xml <constant name="struts.custom.i18n.resources" value="itcast" /> ``` 这样,`itcast.properties`(或对应不同语言的`itcast_en.properties`、`itcast_zh_CN.properties`等)就会作为全局资源文件,可以在整个应用中被引用。 在JSP页面中,可以使用`<s:text>`标签来输出国际化信息。例如,如果在资源文件中有键名为`user`的条目,可以这样写: ```jsp <s:text name="user" /> ``` 在Action类中,如果Action继承自`ActionSupport`,可以使用`getText()`方法获取国际化信息。例如: ```java String message = getText("user"); ``` 这里,`"user"`是资源文件中的键。 另外,Struts2的表单标签`<s:textfield>`可以通过`key`属性引用资源文件中的键,如: ```jsp <s:textfield name="realname" key="user" /> ``` 这使得字段的提示信息可以从资源文件中动态获取,实现了国际化。 Struts2相比Struts1有以下显著优点: 1. **无侵入式设计**:Struts2的应用可以不依赖ServletAPI和StrutsAPI,使得代码更易于维护和解耦。 2. **拦截器**:Struts2引入拦截器机制,支持AOP编程,可以方便地实现权限控制等附加功能。 3. **类型转换器**:内置类型转换器,简化了数据类型转换的过程,无需像Struts1那样注册自定义转换器。 4. **多视图支持**:支持JSP、FreeMarker、Velocity等多种视图技术,提高了灵活性。 5. **输入验证**:可以在特定方法级别进行输入验证,提供了更精细的控制。 6. **国际化资源管理**:提供了全局、包和Action范围的国际化资源文件管理,便于管理和使用。 为了搭建Struts2开发环境,需要: 1. 获取Struts2相关的jar文件,通常可以从Apache Struts官方网站下载最新版本。 2. 编写`struts.xml`配置文件,这是Struts2的核心配置文件,用于定义Action、结果映射等。 3. 在`web.xml`中配置Struts2的前端控制器`FilterDispatcher`(在新版本中为`StrutsPrepareAndExecuteFilter`),以启动Struts2框架。 通过以上步骤,即可开始使用Struts2进行Web应用开发。