1)新建一webproject项目
2)加入struts开发所需的jar包(共8个)至WEB-INF/lib下
3)复制准备好的原始web.xml和struts-config.xml文件至WEB-INF目录下
web.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<servlet-name>action</servlet-name>//servlet的名字
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>//servlet的完整路径
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>//配置struts的配置文件的名字,叫struts-config.xml,另起名时需要修改这里(可配可不配,默认就是这个名
字)
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>//配置servlet输出日志的等级(选配)
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>//这个servlet初始化的时机
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>//定义匹配模式,所有*.do的请求都会被这个servlet截获
</servlet-mapping>
</web-app>
struts-config.xml文件的内容:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
</struts-config>
以上工作即把struts的基本环境配起来了。
4)建立ActionForm类用作数据收集。建立的ActionForm需继承自org.apache.struts.action.ActionForm类,在ActionForm类里提供要收集的属性。名字要和表单上的名字一致。
当ActionForm收集数据时,struts会自动初始化这个类。new完之后他自己调用set方法,把表单上需要收集的属性收集起来。(ActionForm就是一个javabean,符合javabean的规
范)
5)建立Action类,用于逻辑处理。建立的Action需继承自org.apache.struts.action.Action类。复写execute(4个参数)方法。在execute方法里,他已经把ActionForm作为一个
参数传递过来了,只需要强制转化一下,就可以得到表单上的数据。eg:LoginActionForm laf=(LoginActionForm)form;
然后使用laf.getUsername();laf.getPassword();就可以得到表单上的数据,接着就可以调用Model层进行进一步的处理。处理结束之后返回一个ActionForward对象,返回
ActionForward对象的方法:使用ActionMapping对象,ActionMapping对象对应了struts-config.xml的配置信息,配了struts-config.xml,相应的配置信息(path,class,
success等)就存入ActionMapping对象里,故一个ActionMapping实例对应了一个struts-config.xml中的一个action标签。我们使用 return mapping.findForward("success");就
可以返回一个ActionForward对象,下面就是在struts-config.xml中配置action了。
6)配置struts-config.xml:在这里需要配置actionform和action,而且需要先配置actionform(是由dtd决定的)。actionform配置如下:
<form-beans>
<form-bean name="LoginForm" type="com.liu.struts.LoginActionForm"/>//其中name即为给这个actionform起的名字,可任意。type相当于class,即这个actionform的完整路
径,配置之后struts框架就这有这个actionform。
</form-beans>
action配置如下:
<action-mappings>
<action path="/login"//这里定义页面访问时的路径,通form里的action里的action
type="com.liu.struts.LoginAction"//此处的type同class,即类的完整路径
name="LoginForm"//设置与该action匹配的ActionForm,name即为此ActionForm定义时的name
scope="request" //
>
<forward name="success" path="/login_success.jsp"></forward>//定义当success时转向到哪个页面
<forward name="error" path="/login_error.jsp"></forward>
</action>
</action-mappings>