Struts2的知识整理总结(一)

  好久没用过Struts2了,现在Struts2慢慢退出舞台了,但是很多项目还需要用Struts2进行开发和维护,最近有人问我这个,我闲来无事。就给整理下吧。  

Struts2学习整理(一)

Apache Struts2与Struts1完全不同,它的核心功能都是使用拦截实现“值栈”的概念,OGNL表达式和Struts2标签来解决应用程序数据,很多注解和约定,使这个框架更加易于使用。

回顾Struts2的使用过程,Struts2是在WebWork2基础发展而来的。值得注意的一点是,struts 2和struts 1在代码风格上几乎不一样。他们只是名字差不多而已,其实根本就不是一回事。


Struts 2 基本结构流程 :

  1、web浏览器请求一个URL资源。

  2、过滤器Dispatcher查找方法,确定适当的Action。

  3、拦截器自动对请求应用通用功能,如验证和文件上传操作。

  4、Action的execute方法通常用来存储和重新获得信息。

  5、结果被返回到浏览器。

搭建Struts 2 开发环境

1、找到开发Struts 2的应用需要用到的jar包。

  2、编写Struts 2的配置文件。

  3、在web.xml中加入Struts 2 MVC启动框架配置

开发Struts 2 最少用到的jar文件

  Struts-core-2.x.x.jar : Struts 2 框架的核心类库

  xwork-2.x.x.jar : XWork类库,Struts 2 在其上构建

  ognl-2.6.x.jar : Object Graph Navigation Language , Struts 2 框架通过其读写对象的属性。

  freemarker-2.3.x.jar : Struts 2 的UI标签的模版使用 Freemarker编写。

  commons-logging-1.1.x.jar : ASF出品的日志包。

  commons-fileupload-1.2.1.jar : 文件上传组件。

Struts2的相关配置文件

* default.properties        -- 在org/apache/struts2/目录下,代表的是配置的是Struts2的常量的值

* struts-default.xml        -- 在Struts2的核心包下,代表的是Struts2核心功能的配置(Bean、拦截器、结果类型等)

* struts-plugin.xml         -- 配置插件的信息

* struts.xml                -- 重点中的重点配置,代表WEB应用的默认配置,可以配置常量,基本就配置它就可以

* struts.properties         -- 该文件是Struts的默认配置文件  (可以配置常量 )

* web.xml                   -- 配置前端控制器(可以配置常量)

注意:后加载的配置文件会覆盖掉之前加载的配置文件(在这些配置文件中可以配置常量)

Struts2核心配置文件Struts2.xml的配置入门

<package>标签

  如果要配置的标签,那么必须要先配置标签,代表的包的概念。

包含的属性

  name 包的名称,要求是唯一的,管理action配置。

  extends 继承,可以继承其他的包,只要继承了,那么该包就包含了其他包的功能,一般都是继承struts-default

  namespace 名称空间,一般与标签中的name属性共同决定访问路径,常见的配置如下:

            * namespace=""      -- 默认的名称空间(访问的方式和    namespace="/"是一样的)

            * namespace="/"     -- 根名称空间

            * namespace="/aaa"  -- 带有名称的名称空间

            * abstract          -- 抽象的。这个属性基本很少使用,值如果是true,那么编写的包是被继承的。

<action>标签

代表配置action类,包含的属性

  name 和<”package>标签的namespace属性一起来决定访问路径的。

  class 配置Action类的全路径(默认值是ActionSupport类)

  method Action类中执行的方法,如果不指定,默认值是execute

<result>标签

  action 类中方法执行,返回的结果跳转的页面

  name 结果页面逻辑视图名称

  type 结果类型(默认值是转发,也可以设置其他的值)

默认的Action和Action默认的处理类

默认的Action

   在地址栏上输入一个不存在的action请求,程序会报404的异常。

  但是在< package>标签中通过< default-action-ref name=”指定action标签name属性”>来该请求。

Action默认处理类

   在地址栏上输入一个正确的action请求,但是< action>标签中的class属性没有写具体的Action类

  *在<’package>标签中通过< default-class-ref class=”指定action类的全路径”>< /default-class-ref>

Struts2配置常用的常量

可以在Struts2框架中的哪些配置文件中配置常量

struts.xml
   < constant name=”key” value=”value”>< /constant>
web.xml
   在StrutsPrepareAndExecuteFilter配置文件中配置初始化参数
  struts.i18n.encoding=UTF-8 指定默认编码集,作用于  HttpServletRequest的setCharacterEncoding方法
  struts.action.extension=action,, 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开
  struts.serve.static.browserCache=true 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭
  struts.configuration.xml.reload=false 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开
  struts.devMode = false 开发模式下使用,这样可以打印出更详细的错误信息
  struts.enable.DynamicMethodInvocation = true 开启对Action的动态方法访问

指定多个struts的配置文件

  在大部分应用里,随着应用规模的增加,系统中Action的数量也会大量增加,导致struts.xml配置文件变得非常臃肿。
  为了避免struts.xml文件过于庞大、臃肿,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件。
   可以在< package>标签中,使用< include>标签来引入其他的struts_xx.xml的配置文件。例如:
   < struts>
  < include file=”struts-part1.xml”/>
  < include file=”struts-part2.xml”/>
   < /struts>

**查看上一章节 https://blog.csdn.net/qq_25814003/article/details/53738837
查看下一章节 https://blog.csdn.net/qq_25814003/article/details/53502778**

猜你喜欢

转载自blog.csdn.net/qq_25814003/article/details/53302254
今日推荐