第一节 需求定义
简单的需求如下图
1 用户处在Welcome.jsp 页面,点击登录连接到达Login.jsp页面
2 在Login.jsp输入用户名密码,点击登陆按钮,转到LoginAction处理
3.1 在登陆成功的情况下,再回到Welcome.jsp页面,在页面上显示登录信息
3.2 在登陆失败的情况下,返回到Login.jsp显示登陆错误信息
Welcome.jsp Login.jsp 1 开始登陆
2 登陆 3.1登陆成功 3.2登陆失败 LoginAction
第二节 使用maven建立基本开发结构
使用如下命令建立Struts2 应用程序框架结构
mvn archetype:create
-DgroupId=com.jpleasure
-DartifactId=login
-DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-starter
-DarchetypeVersion=
目录说明
生成的Struts2开发框架目录满足一般的maven项目,主要由以下目录组成:
src
├─main 源代码目录
│ ├─java java代码
│ ├─resources 资源文件等
│ └─webapp Web目录
│ ├─jsp JSP目录
│ ├─styles CSS目录
│ └─WEB-INF WEB-INF目录
└─test 测试代码目录
├─java java代码
└─resources 资源文件等
重要文件:
src/main/resources
applicationContext.xml Spring配置文件
log4j.properties log4j配置文件
struts.properties struts参数文件
struts.xml struts配置文件
xwork-conversion.properties xwork参数文件
src/main/webapp/WEB-INF
decorators.xml
dwr.xml DWR配置文件
sitemesh.xml SiteMesh配置文件
web.xml Web部署描述文件
进入工程目录(login目录)使用如下命令建立Eclipse工程文件
mvn eclipse:eclipse
使用如下命令打包工程
mvn package
应用程序打包完成之后可以再login/target目录中看到login.war文件,这个文件就是最终的成果文件
使用如下命令运行应用程序
mvn jetty:run
也可以将login.war拷贝到tomcat的webapps目录下来运行struts2应用程序。
打开IE在浏览器中输入:
可以看到如下画面
说明自动生成的框架已经可以运行。
第三节 补充Login功能
下面我们来完成login功能
首先将login工程导入到Eclipse中
之后建立在src/main/java目录中建立LoginAction类,代码清单如下:
package com.jpleasure.login.action;
import javax.servlet.http.HttpSession;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
public class LoginAction extends ActionSupport {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String forward() throws Exception {
return SUCCESS;
}
@Override
public String execute() throws Exception {
if("admin".equals(name)) {
HttpSession session = ServletActionContext.getRequest().getSession();
session.setAttribute("name", name);
return SUCCESS;
} else {
return INPUT;
}
}
}
Action具有以下特点:
1 从ActionSupport继承而来。
2 包含一些属性和getter,setter方法,这些属性用来保存客户端传递到服务器的数据,或者用来作为在JSP上显示的数据的源。
3 有一些返回String类型,无参数的方法,在LoginAction中是execute方法forwardLogin方法,这些方法就是Action需要执行的方法。
SUCCESS和INPUT都在com.opensymphony.xwork2.Action类中定义,类型为String,分别用来表示成功和输入结果。
在src/main/webapp中建立Welcome.jsp和Login.jsp两个JSP文件
Welcome.jsp代码清单如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Welcome</title>
</head>
<body>
<s:url action="forwardLogin" id