Struts2.X——搭建
今天是我第一次用博客,虽然还有好多的不懂,但是我还是会努力的把自己学到的写下来,分享给大家;
一,SSH框架中的struts2的搭建流程
1.在搭建struts2之前,我们首先要有struts2的jar包,在这里我介绍大家去http://www.apache.org/官网下载,
之后放到lib目录下,我下载的是struts-2.3.30版本,以后在使用struts2.x时要注意版本;
2.当然struts2的jar包有好多可能你在开发中用不上,我在这里就只列出必须要有的;
3.在导完包后,我们就要把它与java项目连接起来,去到项目的WEB-INF下有个web.xml,struts2的入口点是一个过滤器,
因此,sturts2要按过滤器的方式配置。如果没有那就是你在创建项目的最后一页忘了勾上选项,可以如下配置web.xml;
首先在xml文件里配置信息头,注意根据你版本填写;
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
然后,再以过滤器的形式配置引入struts2jar包,注意在后面的版本变成两个过滤器啦;
<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>
4.配置好web.xml文件后,我们就要编写一个用于替代servlet的Action类,注意Action是个特殊类,要继承ActionSupport类;
ActionSupport类不但实现了Action的接口,还实现了验证和国际化相关的接口;
import com.opensymphony.xwork2.ActionSupport; public class IndexAction extends ActionSupport {
// 模拟IndexServlet的doGet方法
// 跟Servlet最大的差异:没了request,也没了response
public String execute1() { // return
// "success"取代request.getRequestDispatcher("index.jsp").forward(request,
// response);
return "success";
}
}
5.编写完Action类后,我们要配置struts.xml文件,struts2中最核心的是Action,而Action的核心就是struts.xml,struts.xml集中了所有页面的导航定义。
掌握struts.xml是掌握struts2项目的关键所在,struts.xml的配置如下;
<?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">
<!-- 上面的头,注意版本,从样例里复制过来 showcase.war\WEB-INF\src\java\struts.xml --> <struts>
<!-- 第1步:先定义一个包 -->
<package name="mypck001" extends="struts-default">
<!-- 第2步:定义一个action,配置跳转信息 name 类似于Servlet @WebServlet("/IndexServlet")
http://xxxx/xxx/Index.action http://xxxx/xxx/Index class 对应于自己写的Action类 当不写method属性时,默认调用的是execute -->
<action name="Index" class="ssh.action.IndexAction" method="execute1">
<!--
跳转是forward
/WEB-INF/是防止jsp不经过action就可以访问
-->
<result name="success">/WEB-INF/jsp/index2.jsp</result>
<result name="error">/WEB-INF/jsp/s_tag.jsp</result>
</action>
</package>
</struts>
注意:Action的name一定要写成代码里显示的形式,没必要后面加“.do”或“.action”这样的后缀形式;<result/>之间定义的JSP页面要把全路径写出来。
6.经过这几步后,启动你的服务器,在地址栏输入登录界面的地址,一个简单的struts2框架就搭建好了……
在struts.xml中,是采用package来管理各种action的。
package标签中的namespace指定了该包的命名空间。
extends是说当前这个包继承自struts-default包,可以在struts2-core-2.2.3.1.jar中的struts-default.xml文件中找到这个包,这个包被定义成抽象的,它不能包含有action。
包中的每一个action标签都和一个逻辑处理类进行了映射,name指定了这个action的名字,和包的namespace组合起来,可以直接访问这个逻辑处理类。
class指定了逻辑处理类的位置,method指定了进行逻辑处理类中进行逻辑处理的方法,这个execute很重要,而且它有固定的返回类型,就是String。
result标签就是根据逻辑判断之后,execute方法返回的字符串,根据返回的字符串,来进入到指定的页面。这里一定要把跳转的地址写清楚,明白。否则浏览器会报404的错误
Struts2.X——搭建的更多相关文章
- 最新版ssh hibernate spring struts2环境搭建
最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...
- 第3章 Struts2框架--1、Struts2环境搭建
第3章 Struts2框架--1.Struts2环境搭建 搭建步骤: 1.从下载http://struts.apache.org 没找到Struts2.3.16版,就下载了2.3.29 2.拷贝后解压 ...
- Struts2框架搭建
使用Struts2版本为:struts-2.3.16.3 下载地址:http://struts.apache.org/ 一.向web项目中添加struts2依赖库 commons-fileupload ...
- struts2的搭建和简单的例子(采用struts-2.5.2版本)
struts框架的概述: 当2001年初,Struts的第一个版本在apache网站上发布,它提供了一种分离视图和业务应用逻辑的web应用方案. 在Struts诞生之前,开发人员都是在jsp里写入处理 ...
- 【SSH】 之 Struts2环境搭建及简单应用开发
在上一篇文章中,我们一起了解了一下struts2的工作机制原理,接下来让我们进行一下简单应用的开发 (一)配置环境 1.建立web项目 2.导入jar包 其中struts2中有很多jar包,我们不需要 ...
- struts2环境搭建和第一个程序
环境搭建 项目目录 导入依赖jar包,如上图lib目录所示. 不同的版本可能会不一样,没关系在tomcat启动时,如果报错java.lang.ClassNotFoundException,我们可以按照 ...
- Struts2如何搭建?
如何搭建Struts2: 1.导入jar包 commons-fileupload-1.3.jar commons-io-2.0.1.jar commons-lang3-3.1.jar freema ...
- Struts2环境搭建及实例解析
与struts1框架的使用一样,struts2的环境搭建及使用同样分为以下几个步骤: 1. 引入jar包(这里以struts2.2.3为例),所需jar包有以下几个: a) s ...
- struts2框架搭建(一)
struts2是一个基于mvc的web应用框架.struts2本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器层(Controller)来建立模型与视图的数据交互. str ...
随机推荐
- 安装spark ha集群
安装spark ha集群 1.默认安装好hadoop+zookeeper 2.安装scala 1.解压安装包 tar zxvf scala-2.11.7.tgz 2.配置环境变量 vim /etc/p ...
- 《UML大战需求分析》阅读随笔(三)
一: 需求中提到的各种业务概念.人物等,经过抽象后都可以视之为类. 平时遇到的人.物,我们将遇到的都是具体的人.物,也就如程序中的对象,是一个实实在在的东西. 当我们分析需求的时候,设计模型的时候,我 ...
- Python学习日志(四)
列表 列表名 = [元素1,元素2,-] 列表和C中的数组有些相似,但列表的功能更加强大,数组的元素要求是同种类型,但列表可以是混合类型. 跟数组一样,通过元素的索引值,我们可以从列表获取单个数据. ...
- IOS UIAppLocation 单例模式
UIApplocation * app=[UIApplocation shareapplocation]; UIAppLocation 只能被初始化一次. 一个程序中只能被创建一次,称为单例模式. 单 ...
- cassandra写数据CommitLog
cassandra 两种方式: Cassandra-ArchitectureCommitLog Cassandra持久化-Durability 一种是配置commitlog_sync为periodic ...
- NAIPC-2016
A. Fancy Antiques 爆搜+剪枝. #include <bits/stdc++.h> using namespace std ; typedef pair < int ...
- [JSOI2008]完美的对称 题解
题目大意: 首先我们给定一点A以及对称中心S,点A'是点A以S为对称中心形成的像点,即点S是线段AA'的对称中心. 点阵组(X)以S为中心的像点是由每个点的像点组成的点阵组.X是用来产生对称中心S的, ...
- VS2015 RTM与ASP.NET 5 RC1之坑
最近Asp.Net 5的RC1出来了 VS2015的Update1也开始进入RC阶段 嗯,微软尿性,是时候转移到VS2015了 开始踩坑之旅 装好VS2015后,当然是开始折腾ASP.Net 5嘛 建 ...
- 回流(reflow)与重绘(repaint)
最近项目排期不紧,于是看了一下之前看了好久也没看明白的chrome调试工具的timeline.但是很遗憾,虽然大概懂了每一项是做什么的,但是用起来并不能得心应手.所以今天的重点不是timeline,而 ...
- #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #endif
情况1:#ifdef _DEBUGvirtual void AssertValid() const; //assert(断言)valid(有效的,正确的)virtual ...