Struts2高级(插件)笔记一
插件
Struts-plugin.xml

说明:
Struts-plugin.xml文件是在tomcat服务器启动的时候加载的
该配置文件在classpath的根目录下

在每一个含有plugin字母的jar包的根目录下有一个struts-plugin.xml文件
当tomcat启动的时候,就把所有的含有plungin的jar包的该配置文件就加载了。
静态注入
1、 在struts2的配置文件中写的bean

在tomcat启动的时候,会执行OgnlValueStackFactory的createValueStack方法

从上图可以看出,在tomcat启动的时候就决定了ValueStack的实现类
2、 改变静态注入的方式
可以在struts.xml文件中对struts-default.xml文件中的bean进行配置和覆盖,这样就可以按照覆盖掉的执行。在struts.xml文件中,做如下的配置

这个时候,当tomcat启动的时候,将会报错。

改变action的产生方式
ObjectFactory

说明:
Struts2容器就是利用ObjectFactory的上面的几个方法产生的action,result,interceptor
配置文件

在struts2容器中,对象工厂是由StrutsObjectFactory来产生的。

从上图中可以看出,StrutsObjectFactory继承了ObjectFacotry,但是没有覆盖buildAction方法,说明struts2的action的产生还是调用了ObjectFactory中的buildAction方法。
写一个对象工厂

该类重写了buildAction方法。
配置文件

说明:
当在浏览器提交一个请求,请求某一个action的时候,在创建action的时候,就会进入到Itheima09ObjectFactory中执行buildAction方法。
Spring与struts2
Jar包中

Struts-plugin.xml

说明:对象工厂为spring:StrutsSpringObjectFactory
总结
当tomcat启动的时候,加载了很多个struts-plugin.xml文件,在该文件中可以配置
Bean
Package
Interceptor
Action
Result
\ 这些元素就被加载到了struts2容器中。
如果不想要某一些内容,只要把这些内容所在的struts-plugin.xml的jar包去掉就可以了。
插件的主要体现形式是jar包。
结果集
结果集架构

说明:
1、 struts2从结构分,可以分为两种结果集
1、 需要跳转的,也就是说需要获取result标签中的内容
该类必须继承StrutResultSupport
2、 不需要跳转,不需要获取result标签中的内容
该类可以直接实现Result接口
结果集的类型
转发

重定向

Json

说明:该结果集是struts与ajax结合的结果集,所以该结果集是不需要跳转的,所以不需要获取result标签中的内容,所以该结果集直接实现Result接口就可以了。
struts2核心流程:
Struts2高级(插件)笔记一的更多相关文章
- Struts2权威指南笔记
Struts2权威指南笔记 1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也 ...
- js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定
js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定 addEventListener()与removeEventListener( ...
- Android高级编程笔记(四)深入探讨Activity(转)
在应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕.这个主界面一般由多个Fragment组成,并由一组次要Activity支持.要在屏幕之间切换,就必须要启动一个新的Activity.一 ...
- bootstrap-paginator 分页插件笔记
[MVC]bootstrap-paginator 分页插件笔记 bootstrap-paginator基于bootstrap框架,使用起来非常简单.官网:http://harttle.github ...
- Struts2 REST 插件 XStream 远程代码执行漏洞 S2-052 复现过程
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- Python高级学习笔记
Python高级学习笔记,此笔记中包含Linux操作系统.Html+CSS+JS.网络协议等. 所有思维导图为本人亲手所画,请勿用于商用. 大哥们,求点赞哦. 第一天笔记:链接 第二天笔记:链接 第三 ...
- Java高级程序设计笔记 • 【目录】
持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java高级程序设计作业目录(作业笔记) 第1章 Java高级程序设计笔记 • [第1章 IO流] 第2章 Java高级程序设 ...
- Struts2 Convention插件的使用(1)
刚刚查阅官方文档(convention-plugin.html)并学习了Struts2的Convention插件,文章这里只作为一个笔记,建议大家去看官方文档比较清晰和全面. 需要在项目添加这些包 c ...
- struts2马士兵笔记
Struts2 学习笔记 目录 01 Struts2-Action 一. Struts作用: 二. 搭建Struts2的运行环境: 三. Namespa ...
随机推荐
- Euler Sums系列(六)
\[\Large\displaystyle \sum_{n=1}^{\infty}\frac{H_{2n}}{n(6n+1)}\] \(\Large\mathbf{Solution:}\) Let \ ...
- Eclipse配置C++11环境详细介绍
转:https://blog.csdn.net/wgxh05/article/details/54021049 本文记录Eclipse配置C++11开发所有作者遇到的情况,包括跨工程文件编译,内联文件 ...
- 【C语言】 删除一个字符串中重复的字符
#include<stdio.h> /*使用n=strlen(s)时加这个#include<string.h>*/ int main(void) { ];/*定义变量*/ in ...
- 树莓派安装ubuntu_meta并配置开发环境
1.烧录系统 首先准备好我们要烧录的ubuntu_meta系统,可以在树莓派官网中下载https://www.raspberrypi.org/downloads/ 这里我们选择 Raspberry P ...
- 学习笔记(22)- plato-训练端到端的模型
原始文档 Train an end-to-end model To get started we can train a very simple model using Ludwig (feel fr ...
- BZOJ - 1257 余数之和(数学)
题目链接:余数之和 题意:给定正整数$n$和$k$,计算$k\%1+k\%2+\dots+k\%n$的值 思路:因为$k\%i=k-\left \lfloor \frac{k}{i} \right \ ...
- 【Struts 分派Action】DispatchAction
LoginAction package k.action; import k.form.UserForm; import org.apache.struts.action.ActionForm; im ...
- java语法基础--动手动脑问题及课后实验问题
---恢复内容开始--- 动手动脑: 1:仔细阅读示例:EnumTest.java,运行它,分析运行结果 结果 :枚举类型是引用类型!枚举类型不属于原始数据类型,它的每个具体指都引用一个特定的对象.相 ...
- PL2303HXA自2012已停产
解决"PL2303HXA自2012已停产,请联系供货商" USB不识别的问题: 问题是WIN10自带的驱动不兼容引起的,只能安装早期驱动,再驱动程序中选择旧版本驱动即可
- 基于SILVACO ATLAS的a-IGZO薄膜晶体管二维器件仿真(02)
Silvaco的破解用了好久好久,而且之后拷了上次例子的代码,Tonyplot的输出存在报错,还是四连. 当然这个点一下还是会出图的.但是,源代码稍微改了下结构,又有报错,而且程序直接终止. go a ...