关于 struts2 中 struts.xml 文件的解析
Posted abelkeith
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 struts2 中 struts.xml 文件的解析相关的知识,希望对你有一定的参考价值。
本文总结自实验楼,实验楼是个好地方
先看个概览
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 6 <struts> 7 8 <constant name="struts.enable.DynamicMethodInvocation" value="false" /> 9 <constant name="struts.devMode" value="true" /> 10 11 <package name="default" namespace="/" extends="struts-default"> 12 13 <default-action-ref name="index" /> 14 15 <global-results> 16 <result name="error">/WEB-INF/jsp/error.jsp</result> 17 </global-results> 18 19 <global-exception-mappings> 20 <exception-mapping exception="java.lang.Exception" result="error"/> 21 </global-exception-mappings> 22 23 <action name="index"> 24 <result type="redirectAction"> 25 <param name="actionName">HelloWorld</param> 26 <param name="namespace">/example</param> 27 </result> 28 </action> 29 </package> 30 31 <include file="example.xml"/> 32 33 <!-- Add packages here --> 34 35 </struts>
constant
其中包含了一些属性设置,它可以改变 struts 框架的一些行为。struts.enable.DynamicMethodInvocation 设置为 true 时,表示设置动态方法调用为真,而 struts.devMode 表示是否启用开发者模式。
package
在 struts 中,package 用来管理 action、result 、interceptor、interceptor-stack 的配置信息
属性 | 是否必须 | 含义 |
name | 是 | 包名,唯一标记,其他 package 可以利用 name 来引用 |
extends | 否 | 设置继承其它package |
namespace | 否 | package 的命名空间,会改变 url 访问地址 |
abstract | 否 | 是否设置为抽象包 |
name : 必须唯一,这样其它 package 如果引用本 package 的话,才能找的到。
extends :当本 package 继承其它的 package 的时候,会继承父 package 的所有配置属性(action、result等等)。package中的信息获取是按照按照 struts.xml 文件中的先后顺序进行的,因此父 package 必须在子 package 之前先定义。通常情况下,继承一个"struts-default.xml"的package,这是 struts2 默认的 package。
namespace : namespace 的配置会改变项目的url访问地址,主要是针对比较大型的项目以方便管理 action,因为不同 namespace 中的 action 可以同名,从而解决 action 重名的问题。如果没有指定 namespace,则默认为 ""。
action
属性 | 是否必须 | 含义 |
name | 是 | action的名称 |
class | 否 | action对应的java类 |
method | 否 | 类中的具体方法 |
converter | 否 | 类型转换器 |
class : 就是配置文件中的 action 和 Java 代码中的某个类是对应的。
method : 在该 class 中对应执行 Action 的函数方法,默认是 execute()。
result
属性 | 是否必须 | 含义 |
name | 否 | Action 对应返回的逻辑响应视图 |
type | 否 | 返回结果的类型 |
name : 具体来说,就是根据某个返回结果,指定响应逻辑,默认是 success
type : 返回结果的类型,默认为 dispatcher
default-action-ref
当项目找不到对应的 action ,时就会默认执行这个 action
global-results
设置 package 范围内的全局响应结果。在多个 action 都返回同一个逻辑视图(通常为某个jsp页面)的情况下,可以通过该标签来统一配置。
global-exception-mapping
配置发生异常时的视图信息。 exception-mapping 是控制 action 范围内的,而 global-exception-mapp 是控制 package 范围内的。两个都配置时, exception-mapping 的优先级更高。
属性 | 是否必须 | 含义 |
name | 否 | exception |
result | 是 | 设置异常相应的视图信息 |
exception | 是 | 设置异常类型 |
include
主要来引用外部配置文件,直接给出 url
<include file="**/**/***.xml" />
完
以上是关于关于 struts2 中 struts.xml 文件的解析的主要内容,如果未能解决你的问题,请参考以下文章