Live2d Test Env

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核心流程:

 

posted @ 2018-08-16 00:09  麦奇  阅读(602)  评论(0编辑  收藏  举报