Struts 1 配置文件

来源:互联网 发布:宝宝哭声辨别软件 编辑:程序博客网 时间:2024/05/01 02:02

web.xml中配置Struts的入口Servlet——ActionServlet,ActionServlet不负责任何的业务处理,它只是查找Action名单,找到path属性与URL属性一致的Action,把请求交给该Action处理

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <servlet>  
  2.       <servlet-name>action</servlet-name>     <!-- Sevrvlet名称-->  
  3.       <servlet-class>  
  4.              org.apache.struts.action.ActionServlet  <!-- Servlet实现类-->  
  5.       </servlet-class>  
  6.       <init-param>  
  7.              <param-name>config</param-name>   <!-- 配置文件,多个可以用逗号分隔-->  
  8.              <param-value>/WEB-INF/struts-config.xml</param-value>  
  9.       </init-param>  
  10. <servlet>  
  11.    
  12. <servlet-mapping>  
  13.       <servlet-name>action</servlet-name>  
  14.       <url-pattern>*.do</url-pattern>     <!-- 截获所有以.do结尾的请求-->  
  15. </servlet-mapping>  

 

配置命名空间

             

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <param-name>config/ namespace1</param-name>    
  2. <param-value>/WEB-INF/struts-config-namespace1.xml</param-value>  

当请求是”/namespace1/hello.do”时会调用struts-config-namespace1.xml里面的Action;当请求是”/hello.do”时会调用struts-config.xml里面的Action

 

struts-config.xml

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.    
  3. <!DOCTYPE struts-config PUBLIC "-//Apache SoftwareFoundation//DTD Struts Configuration 1.2//EN""http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">   
  4.    
  5. <struts-config>  
  6.       <!--配置数据源,需要commons-pool.jar和commons-dbcp.jar--->  
  7.       <data-source type="org.apache.commons.dbcp.BasicDataSource">  
  8.              <set-property property="driverClassName"  value="com.mysql.jdbc.Driver"/>  
  9.              <set-property property="url"  value="jdbc:mysql://localhost:3306/databaseName?charaterEncoding=utf8"/>  
  10.              <set-property property="username" value="root"/>  
  11.              <set-property property="password" value="admin"/>  
  12.       </data-source>  
  13.    
  14.       <form-beans>  <!--FormBean配置-->  
  15.              <form-bean name="firstForm" type="com.clf.struts.form.HelloForm"/>  
  16.              <form-bean name="otherForm" type="com.clf.struts.form.OtherForm"/>  
  17.               
  18.       </form-beans>  
  19.    
  20.       <!--全局异常-->  
  21.       <global-exceptions>  
  22.           <exception key="error.email. invalid"   
  23.              type="java.lang.Exception"                     
  24.              path="/error.jsp"                                     
  25.              handler="exceptions.EmailException"/>  
  26.       </global-exceptions>  
  27.    
  28.    
  29.       <!--全局forward,可以被Action访问-->  
  30.       <global-forwards>  
  31.         <forward name="myforward" path="/mystruts/newProduct.jsp" />  
  32.       </global-forwards>  
  33.    
  34.       <action-mapping>  
  35.    
  36.              <action attribute="firstForm"       <!--FormBean在request域中的属性名,request.getAttribute(“firstForm”)-->  
  37.              input="/form/hello.jsp"    <!--输入页面,Action中执行mapping.getInputForward()将转到该页-->  
  38.              name="firstForm"           <!--FormBean类型,与form-beans的name一致-->  
  39.              path="/hello"                    <!--访问路径"/hello.do"-->  
  40.              scope="request"               <!--作用域,包括request、session-->  
  41.              type="com.clf.struts.action.HelloAction"                   <!--实现类-->  
  42.              >  
  43.    
  44.                     <forward name="success" path="/form/success.jsp"/>                 <!-- 跳转页面-->  
  45.                     <forward name="fail" path="/form/fail.jsp" redirect="true"/>                  <!--redirect 表示跳转到此页面的方式,默认false时,执行request.getRequestDispatcher("").forward();为true时,执行response.redirect()-->  
  46.              </action>  
  47.    
  48.       </action-mapping>  
  49.       <!--国际化资源-->  
  50.       <message-resource parameter="com.clf.struts.ApplicationResources"/>  
  51.    
  52.       <!--可以用来覆盖一些默认的Struts设置,还可以用来配置第三方控制器,比如Spring-->  
  53.       <controller  
  54.       <!--指定在文件上传时的最大文件尺寸。可以使用K、M和G作为单位,必须为整数-->  
  55.       maxFileSize="2M"   
  56.       <!--指定默认的ContentType字段值-->  
  57.       contentType = "text/html"  
  58.       <!--告诉Struts是否应该缓冲内容。默认为true-->  
  59.       nocache = "false" />  
  60.    
  61.       <!-- 配置插件-->  
  62.       <plug-in className="org.apache.struts.validator.ValidatorPlugIn">  
  63.      <set-property property="pathnames"  
  64.          value="/WEB-INF/validator-rules.xml,/WEB-INF/validations.xml"/>  
  65.      <set-property property="pathnames" value="false"/>  
  66.       </plug-in>  
  67.    
  68. </struts-config>  

Struts能够自动转化常用的数据类型,例如int、double等以及java.sql.Date、POJO等,如果变量是int、double、float等数字类型,格式不正确会当做0,如果为Date、Time等复杂类型,格式不对时会抛出异常

 

Struts不会自动创建POJO对象,在FormBean里面用到的时候,必须用new实例化一个POJO对象

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. public classUserBean extends ActionForm{  
  2.       private Person person = new Person();  
  3.       ……  
  4. }  
 

JSP页面显示对象的属性用“.”操作符

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <html:text property="person.name"></html:text>  
 

Action由Struts的ActionServlet产生并维护,每个Action都置于一个实例,在加载Struts时产生,在卸掉Struts时销毁,因此Actin和Servlet一样,都是线程不安全的

而FormBean在每次请求时都会生成一个新的实例,因此是线程安全的

0 0
原创粉丝点击