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对不同的请求进行处理。

最新文章

  1. 中小型ERP系统开发与实施
  2. Java小方法
  3. jquery 鼠标右键事件、左键单击事件判定
  4. Angular - - ngInclude、ngTransclude
  5. Apache Flink教程
  6. 如何局部覆盖element-ui的默认样式
  7. MSSQL2008 数据库展开报错:值不能为空。 参数名: viewInfo (Microsoft.SqlServer.Management.SqlStudio.Explorer)
  8. Setup Sight Sense
  9. hibernate框架学习第三天:对象状态、一级缓存、快照等
  10. Python基础-列表、元祖、字典、字符串
  11. Java集合之LinkedHashMap源码分析
  12. windows 7 系统下,用户每次登录都是以临时配置文件的形式存在于users文件夹下
  13. KMP(2)
  14. 洛谷10月月赛R2&#183;浴谷八连测R3题解
  15. vue页面开发遇到的坑,都是泪!src属性,freemarker取值
  16. NO.009-2018.02.14《临江仙&#183;送钱穆父》宋代:苏轼
  17. GoBelieve IOS SDK接入备忘
  18. mac下安装phpstorm主题
  19. Python面试题(练习一)
  20. NHibernate3剖析:Mapping篇之集合映射基础(3):List映射

热门文章

  1. Nginx上部署HTTPS
  2. 4.Node.js 微信消息管理
  3. php简单的文件操作
  4. Nmap脚本引擎原理
  5. Here文档
  6. ionic 使用了 crosswalkwebview 所产生的bug 及 解决方案
  7. java hascode
  8. Linux基础命令之总结一
  9. 【Android Developers Training】 45. 控制音频焦点
  10. 【Android Developers Training】 40. 序言:通过NFC共享文件