eclipse搭建Struts2入门小例子

南楼画角 提交于 2019-12-02 11:05:12

利用eclipse创建一个web工程

导入用到的jar包

开发包下载
打开下载的Struts2开发包 struts-2.3.37->lib下的可以发现有106个jar包但是在实际开发中用不到这么多的jar包

要进行struts2的基本的开发,可以参考struts-2.3.24中的apps下的一些示例代码,其中 struts2-blank.war 是一个 struts2的空的工程。我们只需要将struts2-blank.war解压后进入到WEB-INF 下的lib中查看。
注意:需要将 struts2-blank.war 文件修改后缀
修改为(struts2-blank.zip) 然后右键就可以解压了
把lib里的jar包导入到web项目中
在这里插入图片描述

jar包的作用

文件名 说明
asm-3.3 jar 操作java字节码的类库
asm-comnwns-3.3 jar 提供了基于事件的表现形式
asm-tree-3.3.jar 提供了基于对象的表现形式
struts2-core-2.3.24.jar struts2框架的核心类库
xwork-core-2.3.24jar WebWork核心库,struts2的构建基础
ognI-3.0.6jar 对象图导航语言(Object Graph Navigation Language), struts2框架通过其读写对象的属性
freemarker-2 3.22 jar struts2标签模板使用的类库
Javassist-3.11.0.GA.jar javascript字节码解释器
commons-fileupload-1 3 1 Jar struts2文件上传组件依赖包
commons -io-2.2 jar struts2的输入输出,传文件依赖的jar
commons-lang-2 4Jar 包含一些数据类型工具,是对java.lang包的增强
log4]-api-2.2 jar struts2的日志管理组件依赖包的api
log4J-core-2.2jar struts2的日志管理组件依赖包

从表可以看出,此版本的struts2项目所依赖的基础JAR包共13个。struts2根据版本的不同所依赖的基础JAR包可能不完全相同,不过基本上变化不大,可以视情况而定。
那么struts2的基本jar包己经引入完成了,我们使用struts2都是从页面发起请求到服务器,再由服务器处理请求,响应到页面的这个过程。接下来我们就从页面开发进行struts2的开发。

在webcontent下创建一个页面

index.jsp页面

StrutsDomo是Struts.xml中的 action 标签中 name 的名字
注意:.action 指的是标签(action) 所以不可以不写
${pageContext.request.contextPath} 是动态获取项目的路径

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
	<h2>struts2小例子</h2>
	<a href="${pageContext.request.contextPath}/StrutsDomo.action">点击进入Struts欢迎页面</a>
</body>
</html>

ok.html页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	 <h1>struts_Hello</h1>
</body>
</html>

struts.xml文件

文件位置在src根目录下
result 标签是根据name来进行跳转页面 标签中的值是根据方法返回的值与name相等而跳转的页面路径
而 name 是 method中 execute 方法中的返回值
而execute 是 class (com.sui.StrutsDomo)类中的一个方法 class的值是 包名+类名

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <package name="default" namespace="/" extends="struts-default">
		
		<action name="StrutsDomo" class="com.sui.StrutsDomo" method="execute">
			<result name="ok">ok.html</result>
		</action>
       
    </package>
</struts>

StrutsDomo类文件

package com.sui;

public class StrutsDomo {
	public String execute() {
		System.out.println("方法执行了");
		return "ok";
	}
}

配置web.xml

在web-app标签中

<filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

流程

  1. 配置web.xml文件
  2. 打开index.jsp页面
  3. 点击根据a标签的href="${pageContext.request.contextPath}/StrutsDomo.action"找到struts.xml文件中名字为action标签name为StrutsDomo
  4. 根据name为StrutsDomo的action标签中的class类中的方法execute执行有一个返回值ok
  5. 根据返回值ok通过result标签的name来跳转到ok.html页面
  6. 如果跳转过去了并且控制台打印“方法执行了”表示struts2简单配置完成了
    在这里插入图片描述
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!