一、为Structs应用配置Web.xml文件

1、配置ActionServlet

<servlet> 
  <servlet-name>action</servlet-name> 
  <servlet-class>org.appache.structs.ActionServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
   <servlet-name>action</servlet-name> 
   <uri-pattern>*.do</url-pattern> 
</servlet-mapping> 

       注意:不管应用中包含多少个子应用,都只需配置一个ActionServlet,因为ActionServlet支持多线程,目前的Structs框架只允许在应用中配置一个ActionServlet

2、配置初始化

<servlet> 
   <init-param> 
      <param-name>config</param-name> 
      <param-value>/WEB-INF/structs-config.xml</param-value> 
   </init-param>
   <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
   </init-param>
   <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
   </init-param>
</servlet>

说明:
参数名                                               含义/默认值
config            以相对路径的方式指明Struts应用程序的配置文件位置。如不设置,则默认值为/WEB-INF/struts-config.xml。 
config/sub1       以相对路径的方式指明子应用程序的配置文件位置,一般来说,很少用到子应用程序,在此不多描述。
debug             设置Servlet的debug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。 
detail            设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。 

3、配置欢迎清单

<welcome-file-list> 
     <welcome-file>welcome.jsp</welcome-file> 
     <welcome-file>index.jsp</welcome-file>  
</welcome-fiel-list> 

说明:         当客户访问Web应用时,如果仅仅给出Web应用的Root URL,没用指定具体的文件名,Web容器会自动调用Web应用的欢迎文件。         <welcome-file-list>可以包含多个<welcome-file>子元素,首先查找第一个<welcome-file>文件。 
由于<welcome-file-list>元素中不能配置Servlet映射,因此不能直接把Structs的Action作为欢迎文件,可以采用一种变通的方法来实现在欢迎文件中调用Structs Action。首先,在Structs配置文件中为被调用的Action创建一个全局的转发项,
例如: 
<global-forwards> 
    <forward name="welcome" path="HelloWord.do"/> 
</global-forwords> 
创建一个welcome.jsp的文件

最后在web.xml文件中把welcome.jsp文件配置为欢迎文件,代码如下: 

<welcome-file-list> 
    <welcome-file>welcome.jsp</welcome-file> 
</welcome-file-list>


4、配置错误处理 

<error-page> 
    <error-code>404</error-code> 
    <location>/commom/404.jsp</location> 
</error-page> 
<error-page> 
    <error-code>505</error-code> 
    <location>/commom/505.jsp</location> 
</error-page> 

      也可以为Web容器捕获的Java异常配置<error-page>,需要设置<exception-type>子元素,它用于指定Java异常类。Web容器可能捕获如下异常:

RuntimeException、Error、ServletException或它的子类、IOException或它的子类。

<error-page> 
    <exception-type>java.io.IOException</exception-type> 
    <location>/common/system_ioerror.jsp</location> 
</error-page> 

5、配置Struts标签库

使用客户化的标签库,要配置它们 

<taglib> 
   <tag-uri>/WEB-INF/structs-html.tld<tag-uri> 
   <taglib-location>/WEB-INF/structs-html.tld</taglib-location> 
</taglib> 
<tag-uri>用于指定标签库的相对或者绝对URI地址,Web应用根据这一URI来访问标签库。 

<taglib-location>指定标签描述文件在文件资源系统中的物理位置。


二、配置Structs-config.xml配置文件 

Structs框架在启动时会读入其配置文件,根据它来创建和配置各种Structs组件。 

<Structs-config>元素: 

    <structs-config>元素是Structs配置文件的根元素,<structs-cofig>元素有8个子元素。它的DTD定义如下: 

 <!ELEMENT structs-config(data-sources?,formbean?,global-exeception?,global-forward?,action-mapping,controller?,message-resources*,plug-in*)>

        在Struts配置中,必须按照以上的DTD指定的先后顺序来配置<Structs-config>元素的各个子元素,如果颠倒了这些元素的配置文件中的位置,在Structs应用启动时会生成错误。


1、<data-sources>元素  

    <data-sources>元素包含零个、一个或者多个<data-source>子元素,<data-source>用于配置特定的数据源,它可以包含多个<set-property>子元素,用于设置数据源的各种属性。配置了数据源后,就可以在Action类中访问数据源,在org.apache.structs.action.Action类中定义了getDataSource(HttpRequrst,key)方法,它用于获取数据源对象的引用。 

DataSource dataSource=getDataSource(request,datasource); 
Connection connection=dataSource.getConnection(); 

        可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过改值来标识特定的数据源。

 

2、<form-beans>元素

    <form-beans>元素要配置多个ActionForm Bean,<form-beans>包含多个<forom-bean>子元素,每个<from-bean>包含多个属性:ClassName,name,type

<form-beans> 
   <form-bean name="user" type="com.yourcompany.form.UserForm"/> 
</form-beans> 
注意:配置动态ActionForm Bean,还必须配置<form-bean>元素的<form-property>元素。 

<form-beans> 
    <form-bean name="user1" type="com.yourcompany.form.UserForm"/> 
    <form-bean name="user2" type="org.apache.structs.action.DynaAction"> 
        <from-property name="name" type="java.lang.String"/> 
        <form-property name="sex" type="java.lang.String"/> 
        <form-property name="age" type="java.Integer" initial="18"/>
    <form-bean/>
</form-beans> 


3、<global-exception>元素 

       <global-exception>用于配置异常处理,<global-exception>元素可以包含零个或者多个<exception>元素。
       <exception>元素用来设置java异常和异常处理类org.apache.structs.action,Exception,Hander之间的映射。 


4、<gloable-forwards>元素 

       <global-forwards>元素用来声明全局的转发关系,<global-forwards>有零个或多个<forward>元素组成。

       <forward>元素用于把一个逻辑映射到特定的URL 

属性                                       描述
className            和<forward>元素对应的配置类,默认为org.apache.structs.action.ActionForward
name                      转发路径的逻辑名,此项时必须的
path                        指定或者重定向的URI。此项时必须的,必须以”/”开头
redirect                  此项是true,表示是执行重定向的操作,此项是false时,表示请求转发。 

<global-forwards> 
    <forward name="forward1" path="/Action1.do"/> 
    <forward name="forward1" path="/Action2.do"/> 
</global-forwards> 
       如果jsp1.jsp把请求转发给Action1,可以使用以下代码: 

       <html:link forward=”forward1”> 或者<logic:forward name=”forward1”> 

       如果Action1的execute()方法把请求转发给JSP2.jsp,可以使用一下代码: 

       return(mapping.findForward(“forward2”)) 


5、<action-mappings>元素 

       <action-mappings>元素包含零个或者多个<action>元素。<action>元素描述了从特定的请求路径到相应的Action类的映射。


6、<controller>元素 

      <controller>元素用于配置ActionServlet。 

7、< message-resources>元素 

      <message-resources>元素用于配置Resource Bundle,Resource Budle用于存放本地化消息文件。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐