Struts2之struts-2.3.20开发环境的搭建并实现第一个Hello World小应用
搭建Struts2的开发环境,一般要做以下三个步骤:
1.找到开发Struts2应用需要使用到的jar文件,接下来介绍如何在网上下载Struts所需要的工具并找到开发Struts应用的jar文件:
(1).首先,在百度中搜索Struts2,然后打开下图的红色箭头指向处(也可以直接点击下面的网址访问:Struts网址)
(2).打开之后,出现下图的界面,点击下载按钮:
(3).选择下面圈起来的第一个zip包,下载即可:
(4).下载之后解压到一个文件夹里面,我下载之后里面的文件有:
(5).我们所需要的jar包就在lib那个文件夹下,不同应用需要的jar包是不同的,因为我们所下载的Struts包是Struts-2.3.20版本的,所以开发Struts2程序最少需要的jar包有以下10个,分别是:
struts2-core-2.x.x.jar : Struts 2框架的核心类库。
xwork-core-2.x.x.jar: XWork类库,Struts 2在其上创建。
ognl-3.x.x.jar: 对象图导航语言(Object Graph Navigation Language),Struts 2框架通过其读写对象的属性。
freemarker-2.3.x.jar: Struts 2的UI标签的模板使用FreeMarker编写。
commons-logging-1.1.x.jar: ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK1.4+的日志记录。
commons-fileupload-1.3.1.jar: 文件上传组件,2.1.6版本后必须加入此文件。
commons-io-2.2.jar:里面有很多io(输入输出)操作工具类,是java.io.*的扩展,IO数据流读取功能。
commons-lang-2.4.jar:是json中的jar包,包含了一些数据类型工具,是java.lang.*的扩展。
commons-lang3-3.2.jar:带有常用的语言处理类的方法。
javassist-3.11.0.GA.jar:javassist(Java编程助手)用来操作字节码的,是字节码操纵简单。这个jar包是一个编辑Java字节码的类库。
以上这些包都可以在lib文件夹中找到,这是Struts-2.3.20版本所必需的,要不然会报异常
(6).接下来我们打开MyEclipse工具,新建一个Web Project:
点击完成后打开项目底下的WebRoot目录下的WEB-INF,下面有个lib文件夹,把上面所需要的10个jar包找到,放入lib目录底下:
这样就完成了第一步骤,把开发Struts2应用所需要的jar包放入Web工程中。
注:如果你所下载的Struts工具的版本较低的话,有一些jar包是不需要的,这里仅供大家作为参考。
2.接下来就是编写Struts2的配置文件:
在项目下的src目录下新建一个struts.xml文件,接下来附上struts.xml的模板:
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></struts>
就可以在<struts>和</struts>标记之间写一些其它的东西了。
3.在项目底下的WebRoot目录下的WEB-INF下的web.xml文件中加入Struts2 MVC框架启动配置:
这里,只需要在web.xml文件中加入这一段代码:
<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>
加在哪里呢,所以我附上web.xml文件:
web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name><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><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>
这样就算配置好了,接下来测试一下开发环境搭建是否成功,点击这个项目,单击鼠标右键,在点击Run as <- 3 MyEclipse Server Application,出现下图,点击OK即可:
然后查看控制台,看是否会报错,如果报错可能上面3步中有步骤没做好,看到控制台没报错,该项目完成即可:
这里只截2幅图了,这样就搭建好了Struts2的开发环境。
4.接下来将实现第一个Struts2应用,这个应用是在前面StrutsTest项目搭建好开发环境后接下来写的:
(1).首先,打开struts.xml文件,在<struts>和</struts>标记之间写一段代码:
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="xg" namespace="/test" extends="struts-default"><action name="helloworld" class="tom.xg.action.HelloWorldAction"method="execute"><result name="hello">/WEB-INF/page/hello.jsp</result></action></package>
</struts>
在Struts2框架中使用包来管理Action,包的作用和java中的类包是非常类似的,它主要用于管理一组业务功能相关的action。在实际作用中,我们应该把一组业务功能相关的Action放在同一个包下。
其中配置包时,必须指定name属性,该name属性值可以任意取名,但必须是唯一的,它不对应java的类包,如果其他包要继承该包,必须通过该属性进行引用,包的namespace属性用于定义该包的命名空间,命名空间作为访问该包下Action的路径的一部分,如访问上面例子的Action,访问路径为:/test/helloworld.action,如果不指定该属性,默认是""(空字符串)。
通常每个包都要继承struts-default包,因为Struts2很多核心的功能是由拦截器来实现的,如:从请求中把请求参数封装到action,文件上传和数据校验等等都是通过拦截器来实现的,struts-default定义了这些拦截器和Result类型。当包继承了struts-default才能使用struts2提供的核心功能,包还可以通过abstract="true"定义为抽象包,抽象包不能包含action。
action中的name属性指的是action的名称,可以作为访问action路径的一部分,class属性是定义一个action类,当请求到来之后,交给这个action类处理,上面的例子说明要创建一个HelloWorldAction类并且在tom.xg.action类包下,method属性指的是该action的方法,如上面代码中的execute方法必须定义在HelloWorldAction类中。
result那个标记主要用来定义视图,name属性是视图的名称,上面的代码说明hello.jsp页面的路径必须在WEB-INF目录底下的page文件夹下。
(2).第二步,把那个包下的action新建出来,类名为HelloWorldAction,该类放在src目录下的tom.xg.action包下,并定义一个execute方法,其中代码如下:
HelloWorldAction.java文件:
package tom.xg.action;public class HelloWorldAction {private String msg;//定义一个字符串变量,放置内存中,用来存储你所想要显示在视图上的信息public String getMessge(){//封装字符串变量return msg;}public String execute(){ //execute方法,其中返回类型一定要是String类型,这是struts2的action方法的签名格式,要求必须是String类型msg="我的第一个Struts2应用,Hello World!";//为该变量负责,通过execute方法,显示到hello.jsp页面上return "hello"; //处理完用户的请求后,希望回到什么视图,就填视图的名称,这里返回到的是struts.xml文件里的result标记的name属性}
}
(3).第三步,在struts.xml文件上要求视图的路径为/WEB-INF/page/hello.jsp,所以我们在项目下WebRoot目录下的WEB-INF下新建一个page文件夹,在page文件夹里新建一个hello.jsp页面:
hello.jsp文件的代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'hello.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><!-- 输出显示HelloWorldAction类所封装的变量,因为是getMessage()方法,所以就是${message },如果在HelloWorldAction类里封装变量的方法为getResult,代码应该写为${result }-->${messge }</body>
</html>
(4).第四步,重新部署StrutsTest项目,开启Tomcat 7.0服务器,再输入网址 http://localhost:8083/Struts2Test/test/helloworld,其中这网址的前面几个不用我说了,后面的/test/helloworld是根据struts.xml文件中包的命名空间namespace属性的值和包下的action的名称name属性值来访问的,如果改了的话,访问路径也要改的,最后,运行效果如下图所示:
最后,再附上该项目的目录结构:
5.以上内容仅供大家学习参考,写得不好请见谅,如要转载,请注明出处,如有雷同,纯属巧合,如有错误,请指出,谢谢!
Struts2之struts-2.3.20开发环境的搭建并实现第一个Hello World小应用相关推荐
- Angular 5.0 学习2:Angular 5.0 开发环境的搭建和新建第一个ng5项目
1.安装Node.js 在开始工作之前,我们必须设置好开发环境. 如果你的机器上还没有Node.js®和npm,请先安装它们. 去Node.js的官网,https://nodejs.org/en/,点 ...
- SSH开发环境整合搭建
1.建立动态web工程,加入必要的jar包. antlr-2.7.7.jar asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar c3p0-0.9.1.2 ...
- strut2开发环境的搭建
搭建struts2开发环境的步骤 1,创建一个project----javaweb工程. 2,导入相关的srtuts2的jar文件 3,创建jsp文件 4,创建action文件 5,编写srtuts2 ...
- ubuntu 11.04下Android开发环境的搭建!
ubuntu 11.04下Android开发环境的搭建! 1.安装JDK 首先到oracle的官网上下载linux版本的JDK,网址为:http://www.oracle.com/technetwor ...
- JAVA学习:maven开发环境快速搭建
最近,开发中要用到maven,所以对maven进行了简单的学习.因为有个maven高手在身边,所以,很快就上手了,我这里算是自我总结吧.关于maven是什么东西,请参考其它文章. 准备工作 Jdk 1 ...
- Eclipse j2ee开发环境的搭建
Eclipse j2ee 开发环境的搭建 Eclipse 是一个开源的功能强大的 ide 开发环境,再加上他的扩展插件功能,使得他被广泛使用. J2ee 有几种开发环境, eclipse+lomboz ...
- TypeScript 开发环境的搭建与数据类型
一.Ts的优势 更早的发现错误 任何位置都有代码提示,增加开发效率 类型系统提升了代码的可维护性,重构更容易 使用最新的ES语法 TS类型推断机制,降低成本 二.开发环境的搭建 安装 Node.js ...
- TI cc2541协议栈开发环境的搭建
最近半个月由于项目需要,学习了一下蓝牙4.0的协议栈开发,其实也就是TI公司做好的协议栈的基础上进行修改,不是太难,现在资料也很多. 我是个新手,所以对于新手来说,我的经验应该很有帮助,但文章细节不全 ...
- Ubuntu20.04下 嵌入式 Qt 开发环境的搭建(适用于Tiny6410)
Ubuntu 下 Tiny6410 嵌入式 Qt 开发环境的搭建 目录导航 Ubuntu 下 Tiny6410 嵌入式 Qt 开发环境的搭建 前言 1.安装前的准备工作 2.安装交叉编译器 3.安装t ...
最新文章
- 分类家族:二分类、多分类、多标签分类、多输出分类
- ESLint的NPM账户遭黑客攻击,可能窃取用户NPM访问令牌
- JavaWeb_域对象的属性操作
- TextArea的滚动条看不到了,可能与height有关
- 杭电2062java实现
- 深入理解计算机系统(2.6)------整数的运算
- python操作excel命令_python操作Excel读写(使用xlrd和xlrt)[转帖]
- java.util.Locale简介
- 安全平台基于ArcGIS构建安全的移动端App
- Permission denied (publickey). 解决方法
- Logic Pro for Mac(音频制作软件)V10.6.2中文版 支持M1芯片版mac
- Android下载文件常见错误解决方法
- 吾爱IC社区知识星球问答精选
- 【BUUCTF】CTF_Crypto 密码学_Quoted-printable(引用可打印)
- postgres 导入纯文本数据txt
- 免费稳定的APP分发托管平台,支持应用合并、内测分发、扫码下载
- 把用户证书安装成系统证书
- 三点估算法 PERT计划评审技术
- java的向下转型_Java 向上/向下转型浅析
- C#事件中sender和e参数的理解
热门文章
- Linux下安装Beego:go install: cannot install cross-compiled binaries when GOBIN is set
- 内部类的小总结(语法和用法方面)
- beyond company30天到期
- python3 str 数字类型判断 str.isdecimal(), isdigit(), isnumeric()
- Entity Framework Core导航属性加载问题
- MFC窗口程序显示命令行输出窗口的方法
- ZOJ3556 How Many Sets I(容斥)
- 禅道批量添加任务时选择对应模块功能
- linux下启动oracle
- 关于VS.NET RSACryptoServiceProvider的疑惑