第三章 Struts2配置详解
3.1 Struts2执行过程
1、获取Struts2资源
2、在应用程序中导入Struts2的类库
3、在web.xml中配置StrutsPrepareAndExecuteFilter
4、编写Action类进行配置
5、配置返回结果与物理视图资源的关系
6、编写结果视图
web.xml
<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>
Action类
核心控制器(Filter):用于拦截用户的请求 ,对请求进行处理
业务控制器(Action):调用相应的Model类实现业务吃了,返回结果
Struts.xml
<struts>
<constant name="struts.ui.theme" value="simple"></constant>
<package name="default" namespace="/" extends="struts-default">
<action name="login" class="struts.LoginAction">
<result name="success" type="dispatcher">guanli.jsp</result>
<result name="input">login.jsp</result>
</action>
</package>
</struts>
Result
1、当web容器接收到请求后,将请求交由在web中配置的Struts2框架的控制器StrutsPrepareAndExecuteFilter(控制器)
2、由StrutsPrepareAndExecuteFilter确定请求对于的Action(业务控制器)
3、框架根据Action返回的结果字符串,由StrutsPrepareAndExecuteFilter选择对于的result,将结果呈现给用户
Action只负责返回结果,不与视图关联
Struts2配置文件
处理中文乱码:
<constant name="struts.il8n.encoding" value="UTF-8"></constant>
Struts2的包:
<package name="default" namespace="/" extends="struts-default">
name:必需且唯一,指定包的名称
extends:指定要扩展的包
namespace:可选,定义包中的Action的命名空间
Struts-default.xml:Struts2的默认配置文件,提供默认值,自动加载
struts-plugin.xml:Struts2插件使用的配置文件
3.2 Action的配置
作用:
1、封装工作单元
2、数据转移场所
3、返回结果字符串
method属性:
例:
<action name="login" class="struts.LoginAction" method="login">
<result name="success" type="dispatcher">guanli.jsp</result>
<result name="input">login.jsp</result>
<result name="error">error.jsp</result>
</action>
调用login.action之后,执行login方法,根据返回结果字符串返回结果视图
Action动态方法调用
<action name="Struts" class="struts.StrutsAction">
<result name="login">guanli.jsp</result>
<result name="Guanli">guanli.jsp</result>
<result name="Details">details.jsp</result>
<result name="Fabu">guanli.jsp</result>
<result name="Update">guanli.jsp</result>
<result name="Register">login.jsp</result>
</action>
这种方法的使用可以减少xxxAction的数量,但是会带来安全隐患
使用方法:Struts!login.action
通配符:
<action name="*house" class="struts.StrutsAction" method="{1}">
<result name="success">{1}.jsp</result>
<result name="input">{1}.jsp</result>
<result name="error">error.jsp</result>
</action>
调用方法:loginhouse.action,配置该action元素时,还指定了method属性
默认的Action:
<default-action-ref name="defaultAction">
<action>
<result name="error">error.jsp</result>
</action>
</default-action-ref>
3.3 Result的配置
常用结果类型
dispatcher:result默认结果类型,以转发方式请求指定的视图资源,请求中包含的数据信息依然存在
redirect:以重定向方式请求指定的视图资源,请求中包含的数据信息将丢失
redirectAction:以重定向方式请求指定的视图资源,请求中包含的数据信息将丢失,主要重定向到另一个Action
动态结果
通过指定方法返回的值,指定执行哪一个Action(业务控制器)
全局结果
<struts>
<constant name="struts.ui.theme" value="simple"></constant>
<package name="default" namespace="/" extends="struts-default">
<global-result>
<result name="error">error.jsp</result>
<result name="login" type="redirect">login.jsp</result>
</global-result>
</package>
</struts>
第三章 Struts2配置详解的更多相关文章
- struts2系列(三):struts2配置详解
原文链接:http://www.cnblogs.com/fmricky/archive/2010/05/20/1740479.html 1.<include> 利用include标签,可以 ...
- “全栈2019”Java第一百零三章:匿名内部类详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Spring之旅第三篇-Spring配置详解
上一篇学习了IOC的概念并初步分析了实现原理,这篇主要学习Spring的配置,话不多说,让我们开始! 一.Bean元素配置 1.1 基本配置 看一个最基本的bean配置 <bean name=& ...
- Spring MVC配置文件的三个常用配置详解
转自:http://www.cnblogs.com/benwu/articles/5162614.html Spring MVC项目中通常会有二个配置文件,sprng-servlet.xml和appl ...
- 第三章 rsync 命令详解和实战用法
一.rsync传输模式 1.本地模式2.远程模式3.守护进程模式 二.守护进程模式 1.安装rsync[root@backup ~]# yum -y install rsync 2.配置rsync[r ...
- struts2配置详解
01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...
- Struts2 配置详解
1. web.xml 此文件的配置可以参看struts2的示例文档 <filter> <filter-name>struts2</filter-name> < ...
- Struts2配置详解_配置Action
Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现 ...
- 第三章 ServerSpcket用法详解
构造ServerSocket ServerSocket的构造方法如下: ServerSocket() //Creates an unbound server socket. ServerSocket( ...
随机推荐
- smarty模板基础2
Smarty自带了一些内置函数,这些内置函数是Smarty模板引擎的组成部分.他们被编译成相应的内嵌PHP代码,以获得最大性能. 您创建的自定义函数不能与内置函数同名,也不必修改这些内置函数. 其中一 ...
- 9 个用于移动APP开发的顶级 JavaScript 框架
顶级 Java 框架 对于Web开发而言,Java是一个有前途的编程语言,并且在不久的将来它将依然在这个领域大放光彩.Java在移动app开发上也有同样的影响吗?让我们一起来看看ValueCoders ...
- 1901: Zju2112 Dynamic Rankings
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 5268 Solved: 2207[Su ...
- 扩大按钮 btn 响应区域
方法一:类别 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c91b13 } p.p2 { margin: 0 ...
- Android: Toolbar、AppBarLayout
ToolBar是google退出的一个应用程序动作条 包括: 设置导航栏图标 设置应用程序Logo 设置标题 设置子标题 添加各种自定义控件 添加动作条菜单 API:https://developer ...
- Python(五)编程小实例
Python(五)编程小实例 抓取网页信息,并生成txt文件内容! Python抓取网页技能--Python抓取网页就是我们常看见的网络爬虫,我们今天所要用到的就是我们Python中自带的模块,用这些 ...
- SQL Server中的Merge关键字 更新表数据
简介 Merge关键字是一个神奇的DML关键字.它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句.MSDN对于Merge的解释非常的短小精悍:”根 ...
- 老司机实战Windows Server Docker:3 单节点Windows Docker服务器简单运维(上)
经过上两篇实战Windows Server Docker系列文章,大家对安装Windows Docker服务以及如何打包现有IIS应用为docker镜像已经有了基本认识.接下来我们来简单讲讲一些最基本 ...
- 【PHP实现】高效使用印象笔记之命令行快速保存
一.功能 脑袋中冒出一个想法时,命令行(Terminal)中输入一条命令快速保存到Evernote. 注:这里适用于保存简短的内容 不喜欢听絮叨的,直接文末找Github地址吧. 二.想法来源 一直使 ...
- IOS百度地图之--->第二篇《大头针__简单使用及自定义》
呵呵!大家不要只看帖不回帖么,要不然我都没有积极性了. 第一步:创建一个用来呈现mapview的viewcontroller,不废话直接贴代码 BasicMapViewControlle ...