?
Web.xml文件配置
??? <servlet>
?????? <servlet-name>action</servlet-name>
??? <servlet-class>org.appache.struts.action.ActionServlet</servlet-class>
?????? <init-param>
?????????? <param-name>config</param-name>
?????????? <param-value>/WEB-INF/struts-config.xml</param-value>
?????? </init-param>
??? </servlet>
?
??? <servlet-mapping>
?????? <servlet-name>action</servlet-name>
?????? <url-pattern>*.do</url-pattern>
??? </servlet-mapping>
?
struts-config.xml文件配置
?
?
?
<!DOCTYPE struts-config PUBLIC
?? ? ? ? ?"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
?? ? ? ? ?"http://struts.apache.org/dtds/struts-config_1_2.dtd">
?
<struts-config>
?
<form-beans>
<!--type:继承ActionForm的实现类 ?-->
<form-bean name="logonForm" type="com.zht.struts.LoginActionForm" />
</form-beans>
?
<action-mappings>
<!--path:访问路径,type:继承Action的实现类,
name:对ActionForm的引用,scope:请求的作用域,默认为session ?-->
<action path="/login"
type="com.zht.struts.LoginActon"?
name="logonForm"
scope="request">
<forward name="success" path="/success.jsp" />
<forward name="error" path="/error.jsp" />
</action>
</action-mappings>
?
</struts-config>
?
?
?
Struts配置文件 说明
1<Struts-config>元素
<struts-config>元素是Struts配置文件的根元素,
<struts-cofig>元素有8个子元素。它的DTD定义如下:
<!ELEMENT struts-config(data-sources?,formbean?,global-exeception?,global-forward?,action-mapping,controller?,message-resources*,plug-in*)>
在Struts配置中,必须按照以上的DTD指定的先后顺序来配置
<Struts-config>元素的各个子元素,如果颠倒了这些元素的配置文件中的位置,在Struts应用启动时会生成错误。
?
<data-sources>元素
<data-sources>元素包含零个、一个或者多个<data-sources>子元素,
<data-sources>用于配置特定的数据源,它可以包含多个<set-property>子元素,用于设置数据源的各种属性。
配置了数据源后,就可以在Action类中访问数据源,在org.apache.struts.action.Action类中定义了getDataSource(HttpRequrst)方法,它用于获取数据源对象的引用。
?
DataSource dataSource;?
Connection connection;
dataSource=getDataSource(request);?
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="HelloForm" type="hello.HelloForm" />
</form-beans>
?
注意:配置动态ActionForm Bean,还必须配置<form-bean>元素的<form-property>元素。
?
<form-beans>
<form-bean name="HelloForm" type="hello.HelloForm" />
<form-bean name="userForm" type="org.apache.struts.action.DynaAction">
<from-property name="firstname" type="java.lang.String" />
<form-property name="secondname" 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.struts.action,Exception Hander之间的映射。?
?
4<gloable-forwards>元素
<global-forwards>元素用来声明全局的转发关系,
<global-forwards>有零个或多个<forward>元素组成。
?
<forward>元素用于把一个逻辑映射到特定的URL 属性 描 述 className 和<forward>元素对应的配置类,默认为org.apache.struts.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-mapping>元素
<action-mapping>元素包含零个或者多个<action>元素。
<action>元素描述了从特定的请求路径到相应的Action类的映射。
?
6<controller>元素
<controller>元素用于配置ActionServlet。
?
7<message-resources>元素
<message-resources>元素用于配置Resource Bundle,ResourceBudle用于存放本地化消息文件。
?
ActionForm 的要求
创建一个ActionForm 并不困难,但是你的类必须符合一些要求:
ActionForm必须扩展自org.apache.struts.ActionForm。基类ActionForm是不能实例化的。
?
?