一、新建web工程S2Demo(见相册中图片S2_1、S2_2)
二、引入Struts2必须类库
下载至http://struts.apache.org/download.cg,选择Struts 2.0.14版本的struts-2.0.14-all.zip压缩包,解压该压缩包,然后将lib目录下的commons-logging.jar、freemarker.jar、ognl.jar、struts2-core.jar、xwork.jar包复制至S2Demo工程的WebRoot/WEB-INF/lib目录下(见相册中图片S2_3)
三、配置web.xml文件
添加过滤器
<!-- 定义struts2的filterDispathcer的Filter,这个Filter拦截所有的请求(/*)使得Struts 2框架提供服务-->
<filter>
<!-- 定义核心Filter的名字 -->
<filter-name>struts2</filter-name>
<!-- 定义核心Filter的实现类 -->
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
<init-param>
<!-- 配置Struts 2框架默认加载的Action包结构 -->
<param-name>actionPackages</param-name>
<param-value>org.apache.struts2.showcase.person</param-value>
</init-param>
</filter>
<!-- FilterDispatcher用来初始化Struts2并且处理所有的WEB请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
四、新建struts.xml配置文件
1. 在src目录下新建该文件,自动会copy一份该文件至WebRoot/WEB-INF/classes目录下
2. 配置该文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 引入struts-default.xml -->
<include file="struts-default.xml"></include>
<package name="default" extends="struts-default">
<!-- 在这里添加Action定义 -->
</package>
</struts>
注:a、配置文件中的package可以将Action分类,更主要的是这些包之间可以互相继承(资料上说还包括拦截器,action映射等的继承),包的名字自定义
b、该配置文件中的继承extends="struts-default"是struts2类库struts2-core-2.0.14.jar文件包里根目录下的struts-default.xml文件中定义的包<package name="struts-default" abstract="true">,其中为应用程序提供了大量的默认配置,Struts2解析配置文件时会自动从类路径的根目录依次先加载struts-default.xml中的包,再解析自定义的struts.xml
c、在struts.xml文件中引入其他配置文件使用<include/>标签
d、看到有的资料引入了struts-default.xml文件,测试过该文件可不引入
五、新建登录的Action类LoginAction.java,是一个加入public String execute()方法的pojo类(见相册中图片S2_4、S2_5)
六、在struts.xml文件中配置LoginAction如何访问,以及其业务出口(见相册中图片S2_6)
七、定义登录页面index.jsp(见相册中图片S2_7)
1. 新建index.jsp页面
2. 引入struts2标签库<%@ taglib prefix="s" uri="/struts-tags"%>
八、新建业务出口页面success.jsp、fail.jsp以供提示登录成功与否
九、部署工程,启动服务器即可运行
参考资料:http://blog.youkuaiyun.com/myeclipse_java/archive/2008/04/13/2288149.aspx