【SSH】Struts2学习(一)Struts入门、各类配置详解、Action详解
来源:互联网 发布:阿里云华南机房 编辑:程序博客网 时间:2024/06/09 02:33
一、准备Struts2的开发包
1、下载 网址:http://struts.apache.org/download
我下载的是Structs 2.3.34版本,也可以下载其他版本,下载后要进行解压
2、解压下载好的Struts2开发包,如下为解压好的目录结构
对文件结构进行简单介绍
二、Struts2初体验
1、创建一个web工程导入相应jar包
Structs 2.3.34解压开的lib文件夹有Struts开发可能用到的所有jar包,但是实际开发不需要用到这么多,
我们可以将apps下的 struts2-blank.war 解压进入到 WEB-INF下的lib中可以拿到struts2基本开发包,将这些包导入到项目中
2、创建一个页面:放置一个链接
新建一个index.jsp文件,在jsp中编写一个Action访问路径
<h1>Struts的入门案例</h1><a href="${pageContext.request.contextPath }/HelloAction">访问我第一个Struts2的Action</a>
3、编写一个Action
创建一个包com.sh.exam01,在该包下面新建一个HelloAction的类,在这个类中编写一个公有的,返回值为String类型,无参的execute方法
package com.sh.exam01;public class HelloAction {/** * 提供一个默认的执行方法:execute * @return */public String execute() {System.out.println("HelloAction中的execute执行了");return "success";}}Action编写好后为了使Struts能对其进行识别,需要对Action进行配置
4、完成Action的配置
在apps的示例代码,在WEB-INF的classes中,有一个名称为struts.xml文件,这就是struts2的配置文件,我们可以将该文件放入自己工程src下,因为工程发布到web服务器中就是WEB-INF下的classes中,我们将原有的内容删除,配置自己编写的Action类即可。
<?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 --><package name="hello" namespace="/" extends="struts-default"><!-- 配置Action --><action name="HelloAction" class="com.sh.exam01.HelloAction"><!-- 配置结果页面的跳转 --><result name="success">/hello.jsp</result></action></package></struts>配置好Action类之后,执行之前还需要配置Struts2的核心过滤器(web层框架的特点是基于前端控制器的模式,这个前端控制器就是由过滤器实现的),过滤器的名称是StrutsPrepareAndExecuteFilter.
5、配置核心过滤器
Struts2框架要执行,所有的请求都需要经过这个前端控制器,所以需要对其进行配置,因为这个核心过滤器完成了框架的部分功能,需要在web.xml中进行如下配置
<!-- 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>
6、进行测试----测试成功
三、Struts2初体验案例的执行过程图解
四、配置struts.xml的提示(不联网情况下)
1、搜索xml,按照图示进行操作
2、在已经下载解压好的Struts2包中lib包下面找到其核心包 struts2-core-2.3.34.jar,将其解压,解压后找到struts-2.3.dtd,记事本打开该文件,复制图示地址
3、点击File System按钮,找到本地struts-2.3.dtd,将Key type改为URI,将第4步复制的地址粘贴到此
4、点击OK,完成配置
五、Struts2配置详解
1、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"><struts><!-- 配置一个包:package 将Action配置封装,可以在package中配置很多actionname属性:包名,标识作用,在不与其他包名重复的前提下随便起namespace属性:给action的访问路径定义一个命名空间extends属性:继承一个指定的包abstract属性:包是否为抽象;标识性属性 表示该包不能被独立运行,专门被继承--><package name="hello" namespace="/" extends="struts-default"><!-- 配置Actionname属性:决定了Action访问资源名class属性:action的完整类名method属性:指定调用Action中的哪个方法来处理请求 --><action name="HelloAction" class="com.sh.exam01.HelloAction"><!-- 配置结果页面的跳转 resultname属性:标识结果处理的名称,与action方法的返回值对应type属性:指定调用哪一个result类处理结果,默认使用转发--><result name="success">/hello.jsp</result></action></package></struts>
2、struts2常量配置
struts.i18n.encoding=GBK② 在struts.xml中覆盖常量(重点)
使用<constant name="" value=""></constant>元素进行覆盖
<constant name="struts.i18n.encoding" value="UTF-8"></constant>③在项目的web.xml中
<!-- 配置常量 <context-param> <param-name>struts.i18n.encoding</param-name> <param-value>UTF-8</param-value> </context-param>
3、struts2配置进阶
4、分模块开发的配置
六、Action详解
1、Action的编写方式
package com.sh.exam04;//方式1:创建一个类,可以是POJO//POJO:不用继承任何父类,也不用实现任何接口//使struts框架的代码侵入性更低public class Demo3Action {}(2)方式2 实现一个Action接口
package com.sh.exam04;import com.opensymphony.xwork2.Action;/** * 方式2:实现一个Action接口 * 里面有execute方法,提供action方法的规范 * Action方法预置了一些字符串,可以在返回结果时使用,为了方便 * @author Administrator * */public class Demo4Action implements Action{public String execute() throws Exception {return null;}}(3)方式3(推荐使用)继承一个类ActionSupport
package com.sh.exam04;import com.opensymphony.xwork2.ActionSupport;/** * 方式3:继承一个类ActionSupport * 帮我们实现了Validateable, ValidationAware, TextProvider, LocaleProvider * 如果我们需要用到这些接口 的实现时,不需要自己再进行实现 * @author Administrator * */public class Demo5Action extends ActionSupport{}
We both look up at the same stars, yet we see such different things.
我们仰望同一片星空,却看见了不同的事物。
- 【SSH】Struts2学习(一)Struts入门、各类配置详解、Action详解
- Struts2的配置 struts.xml Action详解
- Struts2中struts.xml的Action配置详解
- Struts2中struts.xml的Action配置详解
- Struts2中struts.xml的Action、namespace配置详解
- [转]Struts2中struts.xml的Action配置详解
- Struts2中struts.xml的Action配置详解
- Struts2中struts.xml的Action配置详解
- [转]Struts2中struts.xml的Action配置详解
- Struts2中struts.xml的Action配置详解
- 在Struts2 中 struts.xml的Action配置详解
- Struts2中struts.xml的Action配置详解
- Struts2中struts.xml的Action配置详解
- Struts2中struts.xml的Action配置详解
- Struts2中struts.xml的Action配置详解
- Struts2框架学习系列(二) Action --struts.xml配置文件详解
- Struts2.x学习六(struts.properties配置详解 )
- Struts2.x学习七(struts.xml配置详解)
- 发一篇关于MFC查找按钮事件(映射消息)的文章,初级
- 接口以及instanceof
- Java线程stop和suspend的废弃
- 绘图 UIBezierPath
- js中escape,encodeURI,encodeURIComponent三个函数的区别
- 【SSH】Struts2学习(一)Struts入门、各类配置详解、Action详解
- Eclipse + ADT+Sdk 配置
- Nginx常用数据结构(二)
- Linux下修改MySQL用户(root)密码
- MyBatis 3(中文版) 第四章 使用注解配置SQL映射器
- ActiveMQ消息中间件 原理详解 &&附demo实现、以及与springboot集成的demo
- 国庆之前网站降权的事情。
- Core Graphics绘图
- CentOS 7 安装 docker