配置struts .xml的实例详解
更新时间:2023-08-27前言:
Struts是一个基于Java的开发框架,广泛用于构建JavaWeb应用程序。Struts通过使用MVC(Model-View-Controller)设计模式,将应用程序的不同层进行分离,实现了代码的解耦和可重用性。
在Struts的配置文件struts.xml中,我们可以定义请求到处理程序(Action)的映射关系,以及配置全局拦截器(Interceptor),国际化资源文件和结果视图等。接下来,我们将详细解释如何在struts.xml中进行配置。
一、定义Action映射:
在struts.xml中,我们使用action
元素来定义Action的映射关系。每个action
元素都包含一个name
属性,用于指定Action的名称,以及一个class
属性,用于指定Action的处理类。
<action name="myAction" class="com.example.MyAction"> <result name="success">success.jsp</result> <result name="error">error.jsp</result> </action>
上述代码片段中,定义了一个名为"myAction"的Action,对应的处理类是com.example.MyAction
。在成功执行Action后,会使用success.jsp
作为结果视图;在发生错误时,会使用error.jsp
作为结果视图。
二、配置全局拦截器:
在struts.xml中,可以通过interceptors
元素来配置全局拦截器,这些拦截器将被应用到所有的Action上。
拦截器可以在Action执行之前或之后执行一些额外的操作,比如日志记录、权限验证等。我们可以通过interceptor
元素为每个拦截器定义其类名,以及其他配置参数。
<interceptors> <interceptor name="loggingInterceptor" class="com.example.interceptor.LoggingInterceptor" /> <interceptor name="securityInterceptor" class="com.example.interceptor.SecurityInterceptor" /> </interceptors> <default-interceptor-ref name="loggingInterceptor" />
上述代码片段中,我们定义了两个拦截器分别为loggingInterceptor
和securityInterceptor
,并将loggingInterceptor
作为默认的拦截器。
三、配置国际化资源文件和结果视图:
Struts支持国际化,可以根据用户的语言环境显示不同的文本消息。在struts.xml中,我们可以配置一个或多个国际化资源文件,并将其与结果视图关联。
<global-results> <result name="success" type="tiles">main</result> <result name="error" type="tiles">error</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error" /> </global-exception-mappings> <!-- 配置国际化资源文件 --> <global-resource-bundles> <!-- 英文资源文件 --> <bundle name="messages" extends="struts-messages_en" /> <!-- 中文资源文件 --> <bundle name="messages" extends="struts-messages_zh_CN" /> </global-resource-bundles>
上述代码片段中,通过global-results
元素,我们将success
和error
结果视图与tiles
类型的视图模板关联起来。对于全局异常处理,我们使用global-exception-mappings
元素将所有异常映射到error
结果视图。最后,通过global-resource-bundles
元素,我们配置了英文和中文的国际化资源文件。
总结:
在本文中,我们详细解释了如何在struts.xml配置文件中进行Struts的配置。我们学习了如何定义Action映射关系,配置全局拦截器,以及国际化资源文件和结果视图的配置。掌握这些配置技巧,可以帮助我们更好地构建和管理Struts应用程序。