Struts2学习笔记-part1: 快速起步
 
准备工作:
准备Tomcat5.x
 
建立一个Java Web项目,提取最少运行Struts2应用的包集合(摘自Struts官方文档):

Install the Minimum Set of Libraries and Configuration Files

The following files are a minium requirement for your application.
Filename Description
struts2-core.jar Framework library itself, found in distribution root directory
xwork.jar XWork 2 library on which Struts 2 is built (version 2.0 or later)
ognl.jar Object Graph Navigation Language (OGNL), the expression language used throughout the framework
freemarker.jar All UI tag templates are written in Freemarker (also a good option for your own views)
commons-logging.jar Commons logging, which the framework uses to support transparently logging to either Log4J or JDK 1.4+
web.xml Java web application configuration file that defines the filters (and other components) for your web application
struts.xml Framework configuration file that defines the actions, results, and interceptors for your application
If any Struts 2 Plugins are included, then other JARs may be needed too. For example, the optional Spring Plugin requires the Spring JARs to be present.
 
 
目标:实现一个简单的用户登录.
 
下面是实现源码:
 
一、先实现登录页面
<%--
  登录页面
  User: leizhimin
  Date: 2008-3-14
  Time: 15:45:52
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
<head><title>登录页面</title></head>

<body>
<form action="Login.action" method="post">
    <table align="center">
        <caption><h3>用户登录</h3></caption>
        <tr>
            <td>用户名:<input type="text" name="username"/></td>
        </tr>
        <tr>
            <td>密  码:<input type="text" name="password"/></td>
        </tr>
        <tr align="center">
            <td align="center">
                <input type="submit" value="登录"/>
                <input type="reset" value="重填"/>
            </td>
        </tr>
    </table>
</form>
</body>
</html>
 
二、实现处理页面的Action
 
package stu;

/**
* 处理用户请求的Action
* File: LoginAction.java
* User: leizhimin
* Date: 2008-3-14 15:59:07
*/

public class LoginAction {
    private String username;
    private String password;

    /**
     * 处理用户请求的execute方法
     * 因为Struts2的拦截机制,他们负责解析用户的请求参数,并将请求参数赋给Action对应的属性
     *
     * @return 当用户名为aaa并且密码为123时,返回success,否则,返回error.
     * @throws Exception
     */

    public String execute() throws Exception {
        //当用户名为aaa并且密码为123时,返回success,否则,返回error.
        if (getUsername().equals("aaa") && getPassword().equals("123")) {
            return "success";
        } else {
            return "error";
        }
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}
 
三、配置Web.xml
 
<?xml version="1.0" encoding="GBK"?>

<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee [url]http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd[/url]">

    <display-name>Struts Blank</display-name>
    <!--定义Struts2的FilterDispatcher的Filter-->
    <filter>
        <!--定义核心Filter的名字-->
        <filter-name>struts2</filter-name>
        <!--定义核心Filter的实现类-->
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <!--FilterDispatcher用来初始化Struts2并且处理所有的Web请求-->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list>
        <welcome-file>/login.jsp</welcome-file>
    </welcome-file-list>
</web-app>
 
四、配置Action处理结果和资源资源之间的映射关系
        注意:此文件打包后位于WEB-INF/classes/目录下面,或者放入classpath。
 
<?xml version="1.0" encoding="GBK"?>

<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee [url]http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd[/url]">

    <display-name>Struts Blank</display-name>
    <!--定义Struts2的FilterDispatcher的Filter-->
    <filter>
        <!--定义核心Filter的名字-->
        <filter-name>struts2</filter-name>
        <!--定义核心Filter的实现类-->
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <!--FilterDispatcher用来初始化Struts2并且处理所有的Web请求-->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list>
        <welcome-file>/login.jsp</welcome-file>
    </welcome-file-list>
</web-app>
 
五、增加登录成功和失败页面
 
<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
  <head><title>登录成功页面</title></head>
  <body>
           登录成功!
  </body>
</html>
 
<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
  <head><title>登录失败</title></head>
  <body>
      登录失败!
  </body>
</html>
 
六、打包并部署到tomcat,运行如下图:
 
 
 
 
 
参考资料:
struts权威指南