一、在web.xml中安装Struts
要想使用Struts,我们接触到的第一个配置文件就是web.xml。实际上,Struts的入口点是一个名为ActionServlet的Servlet。在第一次访问Struts时,建立这个ActionServlet类的对象实例,并调用ActionServlet类中的init方法来进行初始化(其实是读取struts-config.xml文件中的内容,并根据struts-config.xml中的内容来初始化相关的资源)。因此,就要在web.xml文件中安装这个ActionServlet,并在ActionServlet的初始化参数中指定struts-config.xml的位置。
二、struts-config.xml文件的结构
struts-config.xml是Struts的核心配置文件。也就是说,只要是使用Struts,就必须配置struts-config.xml文件。struts-config.xml文件的所有配置项都要放到顶层元素<struts-config>中,主要配置项有如下七个:
1.FormBean:在<form-beans>元素中配置。
2.Action映射:在<action-mappings>元素中配置。
3.全局Forwards:在<global-forwards>元素中配置。
4.全局异常(Exception):在<global-exceptions>元素中的配置。
5.控制器(Controller):在<controller>元素中配置。
6.信息资源:在<message-resources>元素中的配置。
7.插件:在<plug-in>元素中配置。
下面我们就分别来看一下这七部分的具体配置方法。
三、配置Formbean和Action映射
这两个配置项是Struts配置的核心,也就是说我,一个完整的Struts应用程序都会拥有这两项配置。
每一个Formbean要在<form-beans>元素中定义一个<form-bean>子元素。下面的代码给出了一个标准的Formbean的配置方法:
<form-beans>
<form-bean name="myForm" type="actionform.MyActionForm" />
</form-beans>
其中name属性表示Formbean名,type属性表示Formbean类的全名(包名+类名),一般type属性值需要指定一个org.apache.struts.action.ActionForm类或其子类。type属性值还可以指定一个动态form,如org.apache.struts.action.DynaActionForm,或这个类的子类。
在<form-beans>元素中定义的Formbean一般用于将客户端浏览器提交的数据映射为Java Bean的形式,最终开发人员可以直接使用Java Bean来操作客户端提交的数据。Formbean同时还有验证数据的功能(在validate方法中验证)。Formbean有时还会作为其他用途使用,如使用动态form和LocaleAction类配合使用来进行本地化操作。
每一个Action映射要在<action-mappings>元素中定义一个<action>子元素。Action映射的主要功能是将Struts动作的访问路径(一般以.do结尾)和Struts动作类相对应。同时可以指定一个Formbean来接收和验证客户端提交的数据。下面的代码给出了一个标准的配置Action动作的方法:
<action-mappings>
<action name="myForm" path="/myaction" scope="request" validate="true" type="action.MyAction" input="/mystruts/error.jsp">
<forward name="success" path=" /mystruts/success.jsp" />
</action>
</action-mappings>
四、配置全局Forwards
每一个全局的Forwards需要在<global-forwards>元素中定义一个<forward>子元素。全局 Forwards可以被所有的Action、异常处理以及一些Struts标签(如<html:link>)访问。下面的代码给出了一个标准的全局Forward的配置方法:
<global-forwards>
<forward name="myforward" path="/mystruts/newProduct.jsp" />
</global-forwards>
五、配置局部和全局异常(Exception)
在Struts中处理异常的方法非常多,然后,为了使处理异常的方式更灵活。Struts框架允许以配置的方式来处理异常。
Struts中的异常配置可分为局部和全局异常。这两种异常配置的方法完全一样,只是配置代码的位置不同。配置局部异常的<exception>元素在<action>元素中,而全局异常的<exception>元素在<global-exceptions >元素中。局部异常的优先级大于全局异常的优先级。
下面的代码给出了一个标准的全局异常的配置方法:
<global-exceptions >
<exception key="error.name.blank" type="java.lang.Exception" path="/error.jsp"/>
</global-exceptions>
其中key属性表示在属性文件中的key,一但Struts Action的execute方法抛出异常,Struts首先会在局部和全局异常中匹配type属性所指定的异常类型。如果匹配成功,就会跳转到path属性所指的Web资源(在本例中是"/error.jsp")。如果在error.jsp页面中使用<html:errors/>标签显示错误信息,就会输出key属性所对应的值。
<exception>元素除了可以使用path属性指定要跳转的Web资源外,也可以使用handler属性指定用于处理异常的类。如下面的代码所示:
<global-exceptions>
<exception key="error.email.invalid" type="java.lang.Exception" handler="exceptions.EmailException"/>
</global-exceptions>
<exception>元素除了可以使用path属性指定要跳转的Web资源外,也可以使用handler属性指定用于处理异常的类。如下面的代码所示:
<global-exceptions>
<exception key="error.email.invalid" type="java.lang.Exception" handler="exceptions.EmailException"/>
</global-exceptions>
其中exceptions.EmailException类必须继承org.apache.struts.action.ExceptionHandler类,而且我们必须覆盖execute方法。
ExceptionHandler类的execute方法的定义如下:
public ActionForward execute( Exception ex,ExceptionConfig ae,ActionMapping mapping,
ActionForm formInstance,HttpServletRequest request,
HttpServletResponse response) throws ServletException;
六、配置控制器(Controller)
控制器可能是这七个配置项上使用最少的一项。它主要用来覆盖一些默认的Struts设置。下面是几个常用的Struts设置:
1.maxFileSize:指定在文件上传时的最大文件尺寸。可以使用K、M和G作为单位。如maxFileSize="2M"。maxFileSize的值只能是整数,不能是小数,如maxFileSize=1.2M是不合法的。
2.nocache:告诉Struts是否应该缓冲内容。指定为nocache="true",Struts将不会缓冲内容。默认值为true。
3.contentType:指定默认的ContentType字段值,如果要发送的内容的默认格式是HTML,我们可以指定contentType的值为"text/html"。
下面的代码是一个完成的控制器的配置:
<controller maxFileSize="2M" contentType="text/html" nocache="false" />
七、配置信息资源
信息资源使用<message-resources>元素进行配置。下面是一个配置信息资源的例子:
<message-resources parameter="struts.application" key="global" />
其中parameter属性表示保存信息资源的属性文件的位置,对于上面的代码来说,属性文件的位置是<Web根目录>"WEB-INF"classes"struts"application.properties。key属性表示application.properties文件的标识。如果没有key属性,这个属性文件就是默认的属性文件。当指定key属性时,在使用这个属性文件时,需要使用相关标签的bundle属性指定这个key值。
属性文件中的值可以使用Struts标签来获取,如属性文件中的一个key是key.msg.submit。那么使用<bean:message>标签获取这个属性文件中的key值的代码如下:
<bean:message key="key.msg.submit" bundle="global"/>
属性文件也可以用在获得错误信息上,如在validate方法中使用如下的代码来指定错误提示信息:
errors.add("name",new ActionMessage("error.name.blank"));
而在JSP页面中可以使用如下的代码来显示这个错误信息:
<html:errors property="name" bundle="global"/>
八、配置Struts插件
Struts之所以强大,在很大程度上取决于它支持通过插件的方式进行扩展,如前面讲的Validator和Tiles,都是以Struts插件形式发布的。Struts插件使用<plug-in>元素进行配置,如下面的代码所示:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator.xml" />
</plug-in>
其中className属性指定了Struts要调用的插件类名。property属性指定了插件需要的属性名,而value属性指定了相应的属性值。
分享到:
相关推荐
总结来说,Struts2的配置文件主要涉及到了核心框架的各个组成部分,包括但不限于Action的定义、拦截器的配置以及结果类型的设置等。通过合理的配置,开发者可以轻松地构建出复杂且灵活的应用程序架构。
Struts2是一个强大的MVC...总结,Struts2配置文件是其灵活性和可扩展性的关键,理解和掌握配置文件的使用,能有效提升开发效率并优化应用架构。通过合理的配置,开发者可以轻松地构建出满足业务需求的复杂Web应用。
### 详解Struts1的配置文件 #### 一、引言 在Java Web开发中,Struts1框架作为MVC架构的一种实现,被广泛应用于构建动态网站和企业级应用程序。Struts1的核心功能之一在于其强大的配置文件机制,通过XML格式的配置...
### Struts2 配置文件详解 #### 一、引言 在Struts2框架的应用开发过程中,配置文件起到了至关重要的作用。Struts2主要依赖于两种基于XML的配置文件:`web.xml` 和 `struts-config.xml`(通常命名为 `struts.xml`)...
本文将围绕“Struts2配置文件传值中文乱码”这一主题,深入探讨其成因、解决方案以及相关的配置细节,旨在帮助开发者有效解决中文乱码问题,提升用户体验。 ### Struts2框架简介 Struts2是Apache组织下的一个开源...
总结一下,当遇到Struts2配置文件位置更改问题时,应遵循以下步骤: 1. 确保新的`struts.xml`文件路径是相对于`WEB-INF/classes`目录的。 2. 更新`web.xml`中的`StrutsPrepareAndExecuteFilter`过滤器配置,通过`...
Struts2是一个强大的MVC框架,其配置文件对于理解和配置应用程序的行为至关重要。本文将深入探讨Struts2的主要配置文件,以及它们各自的功能和用途。 首先,我们来看一下核心的配置文件: 1. **web.xml**: 这是Web...
### Struts1多模块多配置文件的开发流程详解 #### 一、引言 在大型项目的开发过程中,为了更好地组织代码结构,提高系统的可维护性和扩展性,通常会采用多模块的设计模式。对于使用Struts1框架进行开发的项目而言,...
1. **`struts-default.xml`**:位于`struts2-core-2.0.6.jar`包内,这是一个默认的配置文件,包含了框架的基本设置。 2. **`struts-plugin.xml`**:通常位于Struts2的插件JAR包(例如`struts2-Xxx-2.0.6.jar`)内,...
#### 一、Struts配置文件概述 在Struts框架中,`struts.xml`配置文件扮演着极其重要的角色。它主要用于定义应用中的各种配置信息,包括但不限于包(Package)、拦截器(Interceptor)、Action以及结果(Result)等...
以下是对“多个struts配置文件使用”这一主题的详细解析。 ### 一、Struts框架概述 Struts是一个开源的MVC(Model-View-Controller)框架,用于构建可扩展的企业级Java Web应用程序。它提供了一种结构化的方式来...
### Struts2核心配置文件详解 #### 一、概述 Struts2框架是Java Web开发领域内一个重要的轻量级框架,它简化了基于MVC(Model-View-Controller)设计模式的应用程序开发过程。在Struts2框架中,有两个核心配置文件...
这两个配置文件是Struts1框架的核心,正确配置它们是构建稳定、高效Web应用的基础。在实际项目中,还需要根据具体需求调整配置,例如引入更多插件或自定义异常处理机制等,以满足复杂的应用场景需求。
Struts 2 配置文件解析与深度剖析 在Java Web开发领域,Struts 2 框架作为MVC(Model-View-Controller)架构模式的杰出代表,以其强大的功能和灵活的配置赢得了广大开发者的青睐。Struts 2 的核心配置文件struts....
### JSP Struts配置文件详解 #### 一、概述 在深入探讨`struts-config.xml`文件中的各项配置之前,我们需要了解Struts框架的基本概念及其配置文件的重要性。Struts是基于MVC(Model-View-Controller)设计模式的...
本文将深入探讨Struts配置文件的细节,包括`web.xml`和`struts-config.xml`。 首先,`web.xml`是每个Web应用程序的标准部署描述符,它是基于XML的文件,用于向Web容器(如Tomcat)提供关于应用如何运行的信息。`web...
### Struts2配置文件详解 #### 一、引言 Struts2是一个基于Java的开源Web应用程序框架,它简化了Web应用的开发过程并提高了代码的可维护性。`struts.xml`作为Struts2的核心配置文件,在项目中扮演着极其重要的角色...
在Java Web开发中,Struts2和...总结来说,拆分Struts2和Spring的配置文件是优化项目结构、提升开发效率和降低维护成本的有效方法。通过合理的拆分,可以使配置文件更易于理解和维护,从而提高整个开发过程的生产力。
**多个Struts配置文件**: Struts2支持多个配置文件,可以通过`<include>`标签来导入其他配置文件,这样可以使配置更加模块化,方便管理和维护。 **Action的调用方式**: Struts2支持基于注解的Action配置,可以...