Struts2基本使用方法
2017-09-22 08:00
225 查看
一、 Struts2框架下载方法
1、 访问http://struts.apache.org/download.cgi#struts25101
2、 选择合适的版本进行下载
如果想使用Struts2框架的全部内容则可选择Full Distribution(完整版)
如果仅需要该框架的基本内容则可选择Essential Dependencies Only(基础包)
在这里我选择下载的是Full Distribution:struts-2.5.10.1-all.zip (65MB)
二、使用Struts2框架的基本步骤是:
1、引入Struts 2工程所需运行库文件。
2、创建或配置web.xml文件
3、创建一个Action类(控制器)
4、创建并配置struts.xml(必需)、struts.properties(可选)文件。
5、创建具体页面(视图层)
下面以实现简单注册用户为例,详细过程如下:
Struts2Demo1为项目名
1、 引入Struts 2工程所需运行库文件。
解压下载的Struts2源码包后,将lib文件夹中需要的jar文件复制到Struts2Demo1/WebRoot/WEB-INF/lib/目录下。
如果因为版本不同而不知道该复制哪些,则可下载Essential Dependencies Only版本的框架,该版本中lib文件夹下的jar文件全都是必需的
下面简单介绍下几个常用的jar包:
(1) struts2-core-2.5.10.1.jar:Struts2的核心库
(2) ognl-3.1.12.jar:OGNL表达式语言,Struts2支持EL表达式
(3) freemarker-2.3.19.jar:表示层框架,定义了Struts2的可视组件主题
(4) commons-lang3-3.4.jar:对JDK中的java.Lang的补充
(5) commons-io-2.4.jar:支持附件上传
(6) commons-fileupload-1.3.2.jar:支持文件上传
(7) javassist-3.20.0-GA.jar:字节码的类库
(8) log4j-api-2.7.jar:日志管理
2、 创建或配置web.xml文件
(1)web.xml路径应为Struts2Demo1/WebRoot/WEB-INF/web.xml
(2)在标签后、标签前添加如下内容:
注1:
Struts2的核心控制器FilterDispatcher被设计成了过滤器,通过标签引入。
说明所有客户端请求都经由FilterDispatcher处理,并把过滤后的请求交给Struts2进行处理。
注2:
由于版本不同,StrutsPrepareAndExecuteFilter 所在的包位置也有可能并不是org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter,如果不是,则需要改为你的StrutsPrepareAndExecuteFilter类所在的实际包位置,例如org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
我的web.xml详细代码如下:
3、 创建一个Action类(控制器)
(1)Struts2直接使用Action来封装HTTP请求参数,因此Action类应该包含与请求相对应的属性,并为该属性提供对应的setter和getter方法。
(2)为Action类里增加一个execute方法,因为Struts2框架默认会执行这个方法。这个方法本身并不做业务逻辑处理,而是调用其他业务逻辑组件完成这部分工作。
(3)Action类返回一个标准的字符串,该字符串是一个逻辑视图名,该视图名对应实际的物理视图。
我们要完成的是用户注册功能,因此最简单的当满足要求时Action返回success表示成功,否则返回input表示需要重新输入注册信息
下面是RegisterAction.java的详细代码:
Action有一下特点:
Struts2框架中Action是一个POJO,没有被代码污染。
Struts2中的Action的execute方法不依赖于servlet API,改善了Struts1中耦合过于紧密,极大方便了单元测试。
Struts2的Action无须用ActionForm封装请求参数。
相对Struts1框架而言,Struts2的逻辑视图不再是ActionForward对象,而是一个普通的字符串,利于分离和复用。
4、 创建并配置struts.xml(必需)、struts.properties(可选)文件
Struts2框架的核心配置文件就是struts.xml,该文件主要负责Struts2应用中各Action的具体实现逻辑。struts.xml会根据不同请求找到具体的Action,然后根据Action返回的逻辑视图名找到具体的物理视图。
在/Struts2Demo1/src文件夹下创建struts.xml
在action标签中定义了name和class。name属性对应的是用户URL请求中的action名,比如在本应用中,用户请求为http://localhost:8080/Struts2/loginUser.action,那么name属性就应该为loginUser。class属性是处理请求的实现类(注意:要包含完整路径),本应用的实现类是wwfy.action.user.UserAction。
result标签定义逻辑视图和物理视图之间的映射,在我们的Action中,如果返回的字符串是"success”则由对应的success.jsp页面进行处理;如果返回的字符串是"input”则由register.jsp页面进行处理。
5、 创建具体页面(视图层)
(1) 注册页面:register.jsp
(2) 注册成功页面:success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'success.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
注册成功<br>
</body>
</html>
以下是完整的目录结构:
1、 访问http://struts.apache.org/download.cgi#struts25101
2、 选择合适的版本进行下载
如果想使用Struts2框架的全部内容则可选择Full Distribution(完整版)
如果仅需要该框架的基本内容则可选择Essential Dependencies Only(基础包)
在这里我选择下载的是Full Distribution:struts-2.5.10.1-all.zip (65MB)
二、使用Struts2框架的基本步骤是:
1、引入Struts 2工程所需运行库文件。
2、创建或配置web.xml文件
3、创建一个Action类(控制器)
4、创建并配置struts.xml(必需)、struts.properties(可选)文件。
5、创建具体页面(视图层)
下面以实现简单注册用户为例,详细过程如下:
Struts2Demo1为项目名
1、 引入Struts 2工程所需运行库文件。
解压下载的Struts2源码包后,将lib文件夹中需要的jar文件复制到Struts2Demo1/WebRoot/WEB-INF/lib/目录下。
如果因为版本不同而不知道该复制哪些,则可下载Essential Dependencies Only版本的框架,该版本中lib文件夹下的jar文件全都是必需的
下面简单介绍下几个常用的jar包:
(1) struts2-core-2.5.10.1.jar:Struts2的核心库
(2) ognl-3.1.12.jar:OGNL表达式语言,Struts2支持EL表达式
(3) freemarker-2.3.19.jar:表示层框架,定义了Struts2的可视组件主题
(4) commons-lang3-3.4.jar:对JDK中的java.Lang的补充
(5) commons-io-2.4.jar:支持附件上传
(6) commons-fileupload-1.3.2.jar:支持文件上传
(7) javassist-3.20.0-GA.jar:字节码的类库
(8) log4j-api-2.7.jar:日志管理
2、 创建或配置web.xml文件
(1)web.xml路径应为Struts2Demo1/WebRoot/WEB-INF/web.xml
(2)在标签后、标签前添加如下内容:
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
注1:
Struts2的核心控制器FilterDispatcher被设计成了过滤器,通过标签引入。
说明所有客户端请求都经由FilterDispatcher处理,并把过滤后的请求交给Struts2进行处理。
注2:
由于版本不同,StrutsPrepareAndExecuteFilter 所在的包位置也有可能并不是org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter,如果不是,则需要改为你的StrutsPrepareAndExecuteFilter类所在的实际包位置,例如org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
我的web.xml详细代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>Struts2Demo1</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
</web-app>
3、 创建一个Action类(控制器)
(1)Struts2直接使用Action来封装HTTP请求参数,因此Action类应该包含与请求相对应的属性,并为该属性提供对应的setter和getter方法。
(2)为Action类里增加一个execute方法,因为Struts2框架默认会执行这个方法。这个方法本身并不做业务逻辑处理,而是调用其他业务逻辑组件完成这部分工作。
(3)Action类返回一个标准的字符串,该字符串是一个逻辑视图名,该视图名对应实际的物理视图。
我们要完成的是用户注册功能,因此最简单的当满足要求时Action返回success表示成功,否则返回input表示需要重新输入注册信息
下面是RegisterAction.java的详细代码:
package struts2demo1; public class RegisterAction { private String 4000 username; private String password; private String confirmPassword; 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 getConfirmPassword() { return confirmPassword; } public void setConfirmPassword(String confirmPassword) { this.confirmPassword = confirmPassword; } public String execute() throws Exception{ if(password.equals(confirmPassword)&&!username.trim().equals("")){ return "success"; }else{ return "input"; } } }
Action有一下特点:
Struts2框架中Action是一个POJO,没有被代码污染。
Struts2中的Action的execute方法不依赖于servlet API,改善了Struts1中耦合过于紧密,极大方便了单元测试。
Struts2的Action无须用ActionForm封装请求参数。
相对Struts1框架而言,Struts2的逻辑视图不再是ActionForward对象,而是一个普通的字符串,利于分离和复用。
4、 创建并配置struts.xml(必需)、struts.properties(可选)文件
Struts2框架的核心配置文件就是struts.xml,该文件主要负责Struts2应用中各Action的具体实现逻辑。struts.xml会根据不同请求找到具体的Action,然后根据Action返回的逻辑视图名找到具体的物理视图。
在/Struts2Demo1/src文件夹下创建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> <package name="Struts2Demo1" extends="struts-default"> <action name="register" class="struts2demo1.RegisterAction"> <result name="success">success.jsp</result> <result name="input">register.jsp</result> </action> </package> </struts>
在action标签中定义了name和class。name属性对应的是用户URL请求中的action名,比如在本应用中,用户请求为http://localhost:8080/Struts2/loginUser.action,那么name属性就应该为loginUser。class属性是处理请求的实现类(注意:要包含完整路径),本应用的实现类是wwfy.action.user.UserAction。
result标签定义逻辑视图和物理视图之间的映射,在我们的Action中,如果返回的字符串是"success”则由对应的success.jsp页面进行处理;如果返回的字符串是"input”则由register.jsp页面进行处理。
5、 创建具体页面(视图层)
(1) 注册页面:register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'MyJsp.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="register.action" method="post"> <table> <tr> <td>姓名:</td> <td><input type="text" name="username"/></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password"/></td> </tr> <tr> <td>确认密码:</td> <td><input type="password" name="confirmPassword"/></td> </tr> <tr> <td><input type="submit" value="注册" name="submit"/></td> <td><input type="reset" value="重置" name="reset"/></td> </tr> </table> </form> </body> </html>
(2) 注册成功页面:success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'success.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
注册成功<br>
</body>
</html>
以下是完整的目录结构:
相关文章推荐
- Struts2的基本项目实现、简易使用方法
- Vi编辑器的基本使用方法!
- Vi编辑器的基本使用方法
- Log4j基本使用方法
- Log4j基本使用方法
- Vi编辑器的基本使用方法
- eclipse +cvs 的基本使用方法(一)
- Vi编辑器的基本使用方法
- Vi 的基本使用方法
- Log4j基本使用方法
- 扫盲行动之:Vi编辑器的基本使用方法!
- Vi编辑器的基本使用方法
- Vi编辑器的基本使用方法
- Vi编辑器的基本使用方法
- eclipse +cvs 的基本使用方法
- Log4j基本使用方法
- Log4j基本使用方法
- Tiles组件的基本使用方法
- [导入]Vi编辑器的基本使用方法 (转载)
- eclipse +cvs 的基本使用方法(三)