Struts2入门项目开发小步骤
Step1:
Struts2的获取和添加到项目中:
在官方网站:http://struts.apache.org 获取Struts的其中一个版本。
在开发项目之前,需要添加struts2的类库支持,也就是将下载解压后的struts的lib目录下的jar包添加到项目的claspath下。通常情况下,这些jar包文件不用全部添加,根据项目实际的开发需要进行添加即可。一般项目开发首先要添加的核心jar包(版本号可以不一样)有:
commons-fileupload-1.3.2.jar、commons-io-2.2.jar、commons-logging-1.1.3.jar、freemarker-2.3.22.jar、ognl-3.0.19.jar、struts2-core-2.3.33.jar、xwork-core-2.3.33.jar。
Step2:
创建项目,将Struts2的支持类库添加到WEB-INF目录的lib文件夹中。
配置web.xml文件:声明Struts2提供的过滤器,类名:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。关键代码如下:
<!-- Struts2 过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <!-- Struts2过滤映射 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注意:Struts2.0中使用的过滤器为:org.apache.struts2.dispatcher.FilterDispatcher,在更高版本中已经不推荐使用这个了,而是使用以上的
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 类。
Step3:
在web项目的源码文件夹下(一般为src文件夹下),创建名称为struts.xml的配置文件,关键代码如下:
<struts>
<!-- 声明包 -->
<package name="myPackage" extends="struts-default">
<!-- 定义Action -->
<action name="yourActionName">
<result name="yourReturn">/your.jsp</result>
</action>
</package>
</struts>
Step4:
Action对象请求参数的注入原理:
在项目的src目录下新建com.mypage.action包,然后在包下创建UerAction类,提供一个username属性,其代码如下:
public class UserAction extends ActionSupport{
//用户名属性
private String username;
//为username提供setter和getter方法,省略.....
........
public String execute(){
.........
return SUCCESS;
}
}
然后根据Action对应配置struts.xml文件,配置代码如下:
<struts>
2 <!-- 声明包 -->
3 <package name="myPackage" extends="struts-default">
4 <!-- 定义Action -->
5 <action name="userAction" class="com.mypage.action.UserAction">
6 <result name="SUCCESS">/success.jsp</result>
7 </action>
8 </package>
9 </struts>
创建index.jsp页面,代码如下:
<html>
<head>
<body>
<h1>struts2 test <h1>
<a href="userAction">用户名</a>
<br>
</body>
</head>
</html>
注意:这段代码也可以使用Struts的动态Action,并不一定要重写execute()方法进行处理,使用动态Action的处理方式可能会更加方便。所以在实际的开发中,可以将同模块的一些请求封装在一个Action对象中,使用struts2 提供的动态Action对不同的请求进行处理。
Struts2入门项目开发小步骤的更多相关文章
- EJB3.0高速入门项目开发步骤
EJB3.0开发步骤 1. 开发环境 IDE开发工具:Eclipse Java EE IDE for Web Developers EJB容器:jboss-4.2.3.GA 后台数据库:MysQL ...
- spring_mvc入门项目的小总结
1.先搭建一个maven的web项目 ,然后把文件夹完善一下,创建一个java的文件夹和resource的问件夹,并指定他们各自的功能. 导入pom.xml文件的依赖 <properties&g ...
- Django项目开发-小技巧
当你开发完一个Django项目之后肯定要吧他丢到服务器让跑起来,但是你在自己的环境下安装了好多的包,是不是在服务器中也要一个个的安装了, pip freeze > read.txt #这条命令会 ...
- 【CC2530入门教程-01】IAR集成开发环境的建立与项目开发流程
[引言] 本系列教程就有关CC2530单片机应用入门基础的实训案例进行分析,主要包括以下6部分的内容:1.CC2530单片机开发入门.2.通用I/O端口的输入和输出.3.外部中断初步应用.4.定时/计 ...
- 如何实现从Java入门到服务端项目开发的进阶?
对于打算入门或者刚刚入门学习Java的人来说,刚开始接触这门学科,往往会觉得不知所措,也会觉得很迷茫.结合前人经验,就从入门到进阶对于Java的学习而言,应该对于学习时间.目标和内容规划有一个清晰的定 ...
- Django 入门项目案例开发(上)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. Django 入门案例开发(中) http://www.cnblogs.com/focusBI ...
- 基于mpvue的小程序项目搭建的步骤
mpvue 是美团开源的一套语法与vue.js一致的.快速开发小程序的前端框架,按官网说可以达到小程序与H5界面使用一套代码.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小 ...
- 基于mpvue的小程序项目搭建的步骤一
未标题-1.png mpvue 是美团开源的一套语法与vue.js一致的.快速开发小程序的前端框架,按官网说可以达到小程序与H5界面使用一套代码.使用此框架,开发者将得到完整的 Vue.js 开发体验 ...
- React Native环境配置、初始化项目、打包安装到手机,以及开发小知识
1.前言 环境:Win10 + Android 已经在Windows电脑上安装好 Node(v14+).Git.Yarn. JDK(v11) javac -version javac 11.0.15. ...
随机推荐
- 详解npm的模块安装机制 --社会我npm哥,好用话不多
依赖树表面的逻辑结构与依赖树真实的物理结构 依赖树表面的逻辑结构与依赖树真实的物理结构并不一定相同! 这里要先提到两个命令:tree -d(linux)和npm ls(npm) 在一个npm项目下 ...
- dede系统自定义变量删除方法
之前添加了个联系电话的系统变量,忘记写描述,结果就显示个冒号,很难看.这样的就要删除了重来,那么织梦怎么删除添加的变量呢?其实很简单.两种方法: 第一种:执行SQL语句.在织梦后台执行-系统-SQL命 ...
- javascript痛点之三闭包
先来看看第一节的例子 'use strict'; function num(){ //用var声明一个变量num1 var num1 = 15; } alert(num1);//num1 is not ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- 模拟对象测试——EasyMock
一.EasyMock 使用动态代理实现模拟对象创建,一般可以满足以下测试需求 1.要测试的模块依赖于其它自己控制不了的模块,如第三方服务,其它组员在开发的服务等,它们都没办法配合你来测试: 2.涉及到 ...
- 用Emacs收发邮件
使用Emacs,将尽可能多的工作放到Emacs中来完成,这样可以提高工作效率. 1.安装必要的LISP插件和程序 $sudo apt-get install stunnel4 $sudo apt-ge ...
- Vin码识别(车架号识别)技术,摆脱手动录入提高工作效率
本文主题:Vin码识别(车架号识别)技术,摆脱手动录入提高工作效率 本文关键词:Vin码识别,汽车Vin码识别,车架号识别,汽车车架号识别,车代码识别,车代号识别 本文主旨:一.Vin码(车架号)在什 ...
- Oracle 分页方法研究
1.Oracle 中的三大分页方法 1.1.通过分析函数分页 1.2.通过 ROWNUM 分页 1.3.通过 ROWID 分页 2.Oracle 分页解决方案浅析 2.1.纯后端代码完成分页 2.2. ...
- Python: 作图
在python中实现数据的可视化,也即作图,一般是依赖matplotlib宏包实现的.但常见的代码中都是加载pylab,是不是这里写错了呀?其实pylib只是matplotlib的一个模块,只是被做成 ...
- 【Android Developers Training】 62. 搭建一个OpenGL ES环境
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...