最近给同事做了一次strtus2基础培训,我现场做了一个简单的struts2集成工程,现贴出来希望对初学者有用。
struts2这个MVC框架的背景,MVC历史就不用再介绍了,我就直接上工程结构贴图了。
贴图如下:
建立一个web 工程 如 mystruts2
集成struts2环境的主要操作步骤如下:
1 在lib中引入struts2框架包中的最基础的8个jar包
贴图如下:
2 维护web.xml中信息
加入如下的信息
<!-- struts2框架是用过滤器加载的 -->
<filter>
<!-- 过滤器名称-->
<filter-name>struts2</filter-name>
<!-- 命名Struts 2.0核心类-过滤器 -->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<!-- 指定Struts 2.0核心类 -->
</filter>
<filter-mapping>
<!-- 过滤器名称 -->
<filter-name>struts2</filter-name>
<!-- 指定处理用户所有请求 /*代表过滤器拦截所有的请求,后缀名是如jsp,action,do他都拦截-->
<url-pattern>/*</url-pattern>
</filter-mapping>
3 在WebRoot文件夹下建立相应的jsp文件
一个login.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>登陆页面</title>
</head>
<body>
<form action="login" method="post" >
<table align="center">
<tr><td>用户名: <input type="text" name="username"></td></tr>
<tr><td>密码: <input type="text" name="password"></td></tr>
<tr align="center">
<td><input type="submit" value="登录">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
一个 welcome.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>成功登陆页面</title>
</head>
<body>
这个是一个成功登陆页面
</body>
</html>
一个 error.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>错误页面</title>
</head>
<body>
这个是一个错误页面
</body>
</html>
4 在src下建立Action的类文件
一般在开发时,常常是src/com/xxcom/xxmodel/xxAction.java的结构形式。 不会直接在src下建立类文件。
//这是一个很普通的java类 只是有String execute() 方法会特别些。
public class LoginAction {
//封装的用户请求的两个参数-页面提交后属性被赋值
//属性和页面控件属性保持一致。
private String username="nihao";
private String password="123";
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;
}
//专门处理用户请求的execute()方法
public String execute() throws Exception{
if(username.equals("weiguo") && password.equals("123")){
return "success";
}else{
return "error";
}
}
}
5 创建struts.xml文件
注意: struts2配置文件的默认存放路径是在/WEB-INF/classes目录下,也就是说,把struts.xml放在src的直接目录下去创建。
理论上也可以修改这个配置文件的相对路径,但web.xml和其它引用struts.xml配置的地方需要做相应的调整,很容易出错。
不建议修改这个相对路径的位置。
struts.xml的文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定struts2 配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
<!-- struts 是struts2 配置文件的根 -->
<struts>
<!-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 -->
<include file="struts-default.xml"></include>
<!-- package 提供了将多个 Action 组织为一个业务模块的方式, package相当一个业务模块的抽象 名字必须是唯一的 -->
<package name="main" extends="struts-default">
<!-- Action 必须是在 包空间下定义 -->
<!-- class 中指定要执行的action类 从WEB-INF/classes的文件夹做为根,开始找 -->
<action name="login" class="com.mycom.LoginAction" >
<!-- jsp文件在工程中的位置 WebRoot\jsp\login.jsp -->
<result name="success">/jsp/welcome.jsp</result>
<result name="error">/jsp/error.jsp</result>
</action>
</package>
</struts>
6 在web.xml中建立系统欢迎页面
原来的web.xml中默认欢迎页面为index.jsp,我修改成login.jsp做为系统的首页。
<!-- 首页设置操作 jsp文件的位置为 WebRoot/jsp/login.jsp -->
<welcome-file-list>
<welcome-file>/jsp/login.jsp</welcome-file>
</welcome-file-list>
以上操作完成,一个最简单的基于struts2框架的功能就算开发完成了。
页面没有使用struts2标签,也没有用自定义标签,struts.xml中没有使用命名空间属性,Action类没有实现多处理方法的写法。等等,
这些知识都可以在这个工程上进行深化和改进。