原文地址:http://blog.csdn.net/wwwgeyang777/article/details/19078545/

回顾Struts2的使用过程,网上搜的教程多多少少都会有点问题,重新记录下创建过程,方便查阅。

1、下载Struts2的jar包

下载地址:http://archive.apache.org/dist/struts/binaries/

我用的是struts-2.3.14-all.zip这个版本

2、创建一个web project项目

下面给出所有文件均创建完成后的工程师图。

3、导入Struts2所需jar包

因为只是示例程序,只需要导入Struts 2支持最小的包就可以了,网上很多教程中添加的最小包都有出入,教大家一个保险的方法。

解压刚才下载的压缩包struts-2.3.14-all.zip,在apps文件夹下有个struts2-blank.war包,打开它,到WEB-INF/lib目录下,如下图所示,即为所需的最小包。包含的包应该和具体的Struts版本有关。

4、配置web.xml

下面进入到具体的配置编码阶段。

打开web.xml,修改配置参数,修改后的具体配置如下。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <display-name></display-name>
  8. <!-- Struts2配置 -->
  9. <filter>
  10. <filter-name>struts2</filter-name>
  11. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  12. </filter>
  13. <filter-mapping>
  14. <filter-name>struts2</filter-name>
  15. <url-pattern>/*</url-pattern>
  16. </filter-mapping>
  17. </web-app>

这里需要注意的是

这里面填入的类,

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

Since Struts 2.1.3, use StrutsPrepareAndExecuteFilter instead or
StrutsPrepareFilterand StrutsExecuteFilter if needing using the
ActionContextCleanUp filter in addition to this one..即,从Struts
2.1.3起已被标注为过时的,改用StrutsPrepareAndExecuteFilter。
我刚用这个版本的时候还是填的org.apache.struts2.dispatcher.FilterDispatcher
结果报错

  1. ***********************************************************************
  2. *                               WARNING!!!                            *
  3. *                                                                     *
  4. * >>> FilterDispatcher <<< is deprecated! Please use the new filters! *
  5. *                                                                     *
  6. *           This can be a source of unpredictable problems!           *
  7. *                                                                     *
  8. *              Please refer to the docs for more details!             *
  9. *            http://struts.apache.org/2.x/docs/webxml.html            *
  10. *                                                                     *
  11. ***********************************************************************

如果你也遇到如上的错误,要仔细再检查下了。

5、配置struts.xml

下面需要创建struts.xml文件,配置strust2要调用的action。直接新建在src目录下,那样部署的时候会自动发布到WEB-INF/classes目录下,或者直接创建在WEB-INF/classes目录下面。

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4. "http://struts.apache.org/dtds/struts-2.3.dtd">
  5. <struts>
  6. <package name="struts2" extends="struts-default">
  7. <action name="HelloWorld" class="tutorial.HelloWorld">
  8. <result>/HelloWorld.jsp</result>
  9. </action>
  10. </package>
  11. </struts>

其中,package元素,作用类似于Java包的机制,他是用于分门别类的一个工具,extends属性如他的名字一样,它继承了struts-
default这个包的所有信息,一般我们自己创建一个包最好都继承它,因为他为我们提供了绝大部分的功能,你可以在struts2-core的jar包
中的struts-default.xml文件中找到这个包。action元素对应与你的表单,例如你的表单的action="welcome",那么该
表单提交后就会将参数交予action的name="welcome"的实现类处理。result元素为action的结果,它由动作类返回的控制字段选
择。

6、写action类(HelloWorld.java)

这个类主要用于struts2跳转到这个action后。默认执行execute()方法。并根据结果返回字符,然后struts.xml根据返回的字符跳到相应的页面

  1. package tutorial;
  2. import com.opensymphony.xwork2.ActionSupport;
  3. public class HelloWorld extends ActionSupport
  4. {
  5. public final static String MESSAGE = "Struts2 is up and running ...";
  6. private String message;
  7. /**
  8. * @return the message
  9. */
  10. public String getMessage()
  11. {
  12. return message;
  13. }
  14. /**
  15. * @param message the message to set
  16. */
  17. public void setMessage(String message)
  18. {
  19. this.message = message;
  20. }
  21. public String execute() throws Exception
  22. {
  23. setMessage(MESSAGE);
  24. return SUCCESS;
  25. }
  26. }

7、写jsp页面

新建一个jsp页面来呈现信息。

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <%@ taglib prefix="s" uri="/struts-tags" %>
  4. <html>
  5. <head>
  6. <title>Hello World!</title>
  7. </head>
  8. <body>
  9. <h2><s:property value="message" /></h2>
  10. </body>
  11. </html>

8、部署运行

在Tomcat中运行该项目,然后打开浏览器,在地址栏中输入:http://localhost:8080/Struts2Demo/HelloWorld
IE效果如下。

至此,最简单的Struts2的使用方法介绍完毕。

[转] Struts2入门示例教程的更多相关文章

  1. Struts2入门示例(Myeclipse)

    1.新建Web项目在lib导入struts-2.3.37核心基础jar包 2.在WebRoot新建2个JSP demo1.jsp <%@ page language="java&quo ...

  2. Struts2入门示例

    1.导入struts2需要的9个包到lib文件夹中 2.配置web.xml文件 <?xml version="1.0" encoding="UTF-8"? ...

  3. struts2入门示例(hello world)

    1. 环境搭建 按照之前的文章配置好myeclipse的jdk和tomcat,并新建一个web项目后,可开始动手配置与struts2相关的地方了.首先去struts的官网下载好最新的struts2代码 ...

  4. TensorFlow入门示例教程

    本部分的代码目前都是基于GitHub大佬非常详细的TensorFlow的教程上,首先给出链接: https://github.com/aymericdamien/TensorFlow-Examples ...

  5. DWR 3.0 入门示例教程

    DWR(Direct Web Remoting) DWR is a Java library that enables Java on the server and JavaScript in a b ...

  6. ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)

    前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...

  7. ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...

  8. MVC5+EF6 入门完整教程九

    前一阵子临时有事,这篇文章发布间隔比较长,我们先回顾下之前的内容,每篇文章用一句话总结重点. 文章一 MVC核心概念简介,一个基本MVC项目结构 文章二 通过开发一个最基本的登录界面,介绍了如何从Co ...

  9. MVC5+EF6 入门完整教程13 -- 动态生成多级菜单

    稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据mode ...

随机推荐

  1. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q128-Q130)

    Question  128 You are designing a SharePoint 2010 solution that includes a custom site definition an ...

  2. Linux0.11内核--进程调度分析之1.初始化

    [版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5596746.html ] 首先看main.c里的初始化函数main函数里面有个函数是对进程调度 ...

  3. UITableView或UIScrollVIew上的UIButton的高亮效果

    UITableView或UIScrollVIew上的UIButton的高亮效果 原文地址:http://www.jianshu.com/p/b4331f06bd34 最近做项目的时候发现,UIScro ...

  4. Android自定义控件5--轮播图广告ViewPager基本实现

    本文地址:http://www.cnblogs.com/wuyudong/p/5918021.html,转载请注明源地址. 本文开始实现轮播图广告系列,这篇文章首先实现让图片滑动起来(ViewPage ...

  5. Object-C关于GCD多线程的使用

    ```objc1 使用Crearte函数创建的并发队列和全局并发队列的主要区别: 1)全局并发队列在整个应用程序中本身是默认存在的并且对应有高优先级.默认优先级.低优先级和后台优先级一共四个并发队列, ...

  6. SE(homework3)_敏捷模型

    今天老师上课主要和我们讲解了软件开发模型类型.既然是敏捷模型,那么什么是非敏捷模型呢?了解这里点,会更清楚什么是敏捷模想.我们所知道的非敏捷模型有瀑布模型,我们知道这是早期软件开发的经典模型,流程主要 ...

  7. 如何查看Oracle客户端版本

    在实际工作中,总会遇到一些需要查看.验证ORACLE客户端版本的问题,因为一台服务器可能装了多个Oracle客户端版本:也有可能你需要知道安装的版本是32位还是64位的.如何查看Oracle客户端(O ...

  8. ORACLE数据库的导入及导出

    今天在客户这里导入oracle数据库,第一次导入oracle数据库,在这里记录一下,以后备用. 一.使用PLSQL导出导入ORACLE数据库: 1.打开plsql-->工具---->导出用 ...

  9. Android使用HttpURLConnection通过POST方式发送java序列化对象

    使用HttpURLConnection类不仅可以向WebService发送字符串,还可以发送序列化的java对象,实现Android手机和服务器之间的数据交互. Android端代码: public ...

  10. Linux的概念与体系

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我在这一系列文章中阐述Linux的基本概念.Linux操作系统继承自UNIX.一个 ...