1、下载 Struts2 框架:http://struts.apache.org/download.cgi 。目前最新版是 Struts 2.3.24。解压后找到 lib 文件夹,找到以下相关类库,待会复制到 Web 应用的 WEB-INF/lib 文件夹中。
其中部分 jar 包的说明如下:
struts2-core-2.3.24.jar // Struts 2 的核心库 xwork-core-2.3.24.jar // WebWork 的核心库,需要它的支持 ognl-3.0.6.jar // OGNL 表达式语言,Struts 2 支持该 EL 表达式 freemarker-2.3.22.jar // 表现层框架,定义了 Struts 2 的可视组件主题 commons-logging-1.1.3.jar // 日志管理 commons-fileupload-1.3.1.jar // 文件上传与下载
2、打开 Eclipse,File——New——Dynamic Web Project,Project Name 输入 UserManage,Next,Next,勾选“Generate web.xml deployment descriptor”,Finish。
3、把第一步找到的 Struts 相关 jar 文件拷贝到 WebContent/WEB-INF/lib 下。
4、在 web.xml 文件中配置 Struts 2 的核心控制器,用来拦截客户端请求,并把请求转发到相应的 Action 类来处理。web.xml 在 WebContent/WEB-INF 目录下,一般用来配置欢迎页、servlet、filter等,当 Tomcat 部署应用程序时,会读取该 web.xml,该文件虽非必须,但当网站复杂时,该文件大有用处。
<?xml version="1.0" encoding="UTF-8"?> <web-app> <display-name>User Manage Project</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
5、在 WebContent 文件夹下创建视图页面 login.jsp。
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!—导入Struts 2标签库--> <html> <body> <div> <div>用户登录</div> <div> <s:form action="checkLogin" namespace="/login"> <s:textfield name="username" label="登录名称" /> <s:password name="password" label="登录密码" /> <s:submit value=" 登 录 " /> </s:form> </div> </div> </body> </html>
6、在 WebContent 文件夹下创建欢迎页面 index.jsp。
<%@ page language="java" pageEncoding="UTF-8"%> <html> <body> <div> 登录成功,欢迎您! </div> </body> </html>
7、在 Java Resources 分类 src 目录下,New——Package,输入 action,然后在该 package 下,创建业务控制器 LoginAction。如果编辑器有提示”xxx cannot be resolved to a type“,那么 ctrl+shift+o 自动引用所使用的全部包。
package action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username=username; } public String getPassword() { return password; } public void setPassword(String password) { this.password=password; } public String checkLogin() { if(this.username.equals("admin") && this.password.equals("123456")) return SUCCESS; else return LOGIN; } }
8、在 struts.xml 文件中配置 LoginAction。struts.xml 在 Java Resources 分类 src 目录下:New——Other——XML——XML File,Next,File Name 输入 struts.xml。内容如下:
<?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> <include file="struts-default.xml"/> <package name="struts2_login" extends="struts-default" namespace="/login"> <action name="checkLogin" class="action.LoginAction" method="checkLogin"> <result name="success">/index.jsp</result> <result name="login">/login.jsp</result> </action> </package> </struts>
action 节点的 name 属性定义该 Action 的名称,class 定义这个 Action的实际实现类,method 表示checkLogin 这个 Action 由实际实现类 LoginAction 的 checkLogin() 方法来处理。
每个 Action 对指定了 result 元素,每个 result 元素都定义了一个逻辑视图,name 定义了 Action 返回的字符串。
9、项目右键 Run as——Run on Server,选择 Tomcat Server,Next,Finish。
访问 http://localhost:8081/UserManage/login.jsp
登录名称输入:admin,登录密码输入:123456,登录成功后会转向 index.jsp 页面。
参考资料:
1. 蒲子明 许勇 王黎等编著. Struts 2+Hibernate+Spring 整合开发技术详解. 第19章