回顾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. 1.Struts2简介和Struts2开发环境搭建

    一.Struts2简介: 1.什么是Struts2? 著名的SSH三大框架分别为:表现层(Struts).业务逻辑层(Spring),持久化层(Hibernate). Struts2是在WebWork ...

  2. java框架之struts2简介

    一.Struts2简介 1.Struts2概述                    Struts2是Apache发行的MVC开源框架.注意:它只是表现层(MVC)框架. M:model-----数据 ...

  3. Struts2简介以及结果集转发

    一.分析之前的项目的不足,编写属于自己的框架二.Struts2简介(面试)三.搭建Struts2的开发环境 1.找到所需的jar包:发行包的lib目录中(不同版本需要的最小jar包是不同的,参见不同版 ...

  4. Struts2简介、初步使用

    今日分享的是楼楼新学的一个框架,Struts2: 一:Struts2简介: Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2 ...

  5. struts2简介

    MVC框架.不过有一点需要注意的是:struts2和struts2虽然名字很相似,但是在两者在代码编写风格上几乎是不一样的.那么既然有了struts1,为什么还要推出struts2.主要的原因是str ...

  6. struts2 之 【struts2简介,struts2开发步骤,struts2详细配置,struts2执行流程】

    入门框架学习避免不了的问题: 1. 什么是框架? 简单的说,框架就是模板,模子,模型.就是一个可重用的半成品. 2. 如何学习框架? 学习框架其实就是学习规则,使用框架就是遵循框架的规则,框架是可变的 ...

  7. Struts2简介以及初步搭建配置

    一.基本介绍 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. ...

  8. Struts2 简介图

    Struts2官方提供的,strus2的内部工作机制图解.

  9. Struts2 简介及学习方法介绍

    Struts2 =  webwork + struts1.x 尊重学习规律的操作 学习上痛苦的根源之一是只能走的时候逼我来跑 不是说深入的内容就不讲了,而是放到合适的时候讲 一段时间可以,长了集中不了 ...

随机推荐

  1. 从js向Action传中文参数出现乱码问题的解决方法

    Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题:但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象     做项目的时候,发现A ...

  2. activiti当前任务高亮(解决乱码问题)

    package com.xinwei; import java.io.File; import java.io.InputStream; import java.util.ArrayList; imp ...

  3. Hdu 2955 Robberies 0/1背包

    Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  4. tomcat

    引用:http://blog.csdn.net/nairuohe/article/details/6175243 /etc/tomcat6 - 全局配置 /usr/share/tomcat6/ - 程 ...

  5. 夺命雷公狗-----React_native---5---初步读懂代码模式

    我们的代码一般导出会用两种方式,如下所示: 这两种方法都是可以的.... 引入方式其实也是很简单的,如下所示: 这样即可...

  6. 有关css伪类visited样式无效的解决方法

    错误写法 将visited写在hover和active之后,例如: .ui-page-theme-a .digilinx-ui-btn{background:#00a325;border-color: ...

  7. 多线程迭代之——LINQ to TaskQuery

    平时经常会迭代集合,如果数据多的话会很耗时. 例子: , , }; list.ForEach(a => DoSomething(a)); void DoSomething(int a) { // ...

  8. 浅谈 Scrapy 爬虫(二)

    越写越像官方文档的翻译,偏离了初衷.写一些官方文档里没有的内容吧.   在不限制宽带的环境下,根据页面的大小, Scrapy 一秒能爬取40-70个页面,一天在400万到600万页面.也就是说 Scr ...

  9. Swift3.0都有哪些变化

    从写第一篇Swift文章的时候到现在Swift已经从1.2发展到了今天的3.0,这期间由于Swift目前还在发展阶段并不能向下兼容,因此第一篇文章中的部分代码在当前的Xcode环境中已经无法运行.在W ...

  10. U-Boot移植

    基于天翔的老师的课程, 他的博客在这儿: http://blog.csdn.net/johnmcu/article/details/6561311 注明不能转载, 就重新写一下吧: 1. 安装韦东山的 ...