Struts2 简介
回顾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,修改配置参数,修改后的具体配置如下。
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- 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_2_5.xsd">
- <display-name></display-name>
- <!-- Struts2配置 -->
- <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-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
结果报错
- ***********************************************************************
- * WARNING!!! *
- * *
- * >>> FilterDispatcher <<< is deprecated! Please use the new filters! *
- * *
- * This can be a source of unpredictable problems! *
- * *
- * Please refer to the docs for more details! *
- * http://struts.apache.org/2.x/docs/webxml.html *
- * *
- ***********************************************************************
如果你也遇到如上的错误,要仔细再检查下了。
5、配置struts.xml
下面需要创建struts.xml文件,配置strust2要调用的action。直接新建在src目录下,那样部署的时候会自动发布到WEB-INF/classes目录下,或者直接创建在WEB-INF/classes目录下面。
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
- "http://struts.apache.org/dtds/struts-2.3.dtd">
- <struts>
- <package name="struts2" extends="struts-default">
- <action name="HelloWorld" class="tutorial.HelloWorld">
- <result>/HelloWorld.jsp</result>
- </action>
- </package>
- </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根据返回的字符跳到相应的页面
- package tutorial;
- import com.opensymphony.xwork2.ActionSupport;
- public class HelloWorld extends ActionSupport
- {
- public final static String MESSAGE = "Struts2 is up and running ...";
- private String message;
- /**
- * @return the message
- */
- public String getMessage()
- {
- return message;
- }
- /**
- * @param message the message to set
- */
- public void setMessage(String message)
- {
- this.message = message;
- }
- public String execute() throws Exception
- {
- setMessage(MESSAGE);
- return SUCCESS;
- }
- }
7、写jsp页面
新建一个jsp页面来呈现信息。
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <html>
- <head>
- <title>Hello World!</title>
- </head>
- <body>
- <h2><s:property value="message" /></h2>
- </body>
- </html>
8、部署运行
在Tomcat中运行该项目,然后打开浏览器,在地址栏中输入:http://localhost:8080/Struts2Demo/HelloWorld
IE效果如下。
至此,最简单的Struts2的使用方法介绍完毕。
Struts2 简介的更多相关文章
- 1.Struts2简介和Struts2开发环境搭建
一.Struts2简介: 1.什么是Struts2? 著名的SSH三大框架分别为:表现层(Struts).业务逻辑层(Spring),持久化层(Hibernate). Struts2是在WebWork ...
- java框架之struts2简介
一.Struts2简介 1.Struts2概述 Struts2是Apache发行的MVC开源框架.注意:它只是表现层(MVC)框架. M:model-----数据 ...
- Struts2简介以及结果集转发
一.分析之前的项目的不足,编写属于自己的框架二.Struts2简介(面试)三.搭建Struts2的开发环境 1.找到所需的jar包:发行包的lib目录中(不同版本需要的最小jar包是不同的,参见不同版 ...
- Struts2简介、初步使用
今日分享的是楼楼新学的一个框架,Struts2: 一:Struts2简介: Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2 ...
- struts2简介
MVC框架.不过有一点需要注意的是:struts2和struts2虽然名字很相似,但是在两者在代码编写风格上几乎是不一样的.那么既然有了struts1,为什么还要推出struts2.主要的原因是str ...
- struts2 之 【struts2简介,struts2开发步骤,struts2详细配置,struts2执行流程】
入门框架学习避免不了的问题: 1. 什么是框架? 简单的说,框架就是模板,模子,模型.就是一个可重用的半成品. 2. 如何学习框架? 学习框架其实就是学习规则,使用框架就是遵循框架的规则,框架是可变的 ...
- Struts2简介以及初步搭建配置
一.基本介绍 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. ...
- Struts2 简介图
Struts2官方提供的,strus2的内部工作机制图解.
- Struts2 简介及学习方法介绍
Struts2 = webwork + struts1.x 尊重学习规律的操作 学习上痛苦的根源之一是只能走的时候逼我来跑 不是说深入的内容就不讲了,而是放到合适的时候讲 一段时间可以,长了集中不了 ...
随机推荐
- python css基本操作
1. 概述 css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化. 存在方式有三种:元素内联.页面嵌入和外部引入,比较三种方式的优缺点. 语法:style ...
- front-end plugin, generate pdf with html5 and jquery
http://www.jqcool.net/jquery-jspdf.html[from this site] <html> <head></head> <s ...
- 【Python学习】函数参数传递方法四种(位置,关键字,默认值,包裹位置,包裹关键字传递)
1. 位置传递: #--coding:utf-8-- def send(name,address): return 'package is sent to %s, located in %s' %(n ...
- UIDatePicker日期选取器
//定义显示日期的格式 NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init]; //NSDateFormatterMediumStyl ...
- The connection to adb is down,and a server error has occured.解决办法---------------------亲测有效
认真读error: 办法一: 点击项目右键->Android tools ->Fix Project Properties,检查项目属性 办法二: 设备管理器,查看是否存在adb进程 如果 ...
- 基于Centos7+Nginx+Tomcat8的负载均衡服务器的搭建
由于工作的需求,在使用中,需要搭建负载均衡,研究了Apache+Tomat负载均衡的方案,并且通过检索相关的文章,进行了比较发现,Apache负载负载均衡在使用的效率上,远远不如Nginx的效率高,因 ...
- (转)sl简单自定义win窗体控件
sl简单自定义win窗体控件 相信大家接触过不少win窗体控件ChildWin子窗口就的sl自带的一个 而且网上也有很多类似的控件,而今天我和大家分享下自己制作个win窗体控件,希望对初学 ...
- JS的window.onload与JQuery的$(document).ready(function(){})的区别
前段时间去面试被问及JS的加载(onload)与jQuery中加载(ready)方法的区别,瞬时懵逼了,关于这个知识点平时还真没怎么注意. 最近先来无事便查了一下资料, onload 事件(W3c上给 ...
- Win10 驱动装不上,提示:Windows 无法验证此设备所需的驱动程序的数字签名。该值受安全引导策略保护,无法进行修改或删除。
Windows 无法验证此设备所需的驱动程序的数字签名.某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件.(代码52) 最近换了新主板,升级了Windo ...
- ios webView 放大网页解决/input 获得焦点focus 网页放大 解决
新手遇到的问题: 终于找到原因,各种HTML viewport 都试过 setScalePageToFit 也试过,webViewDidFinishLoad加JS代码,动态算webView.scrol ...