2017-8-12 Struts2学习笔记三

来源:互联网 发布:淘宝详情页打不开 编辑:程序博客网 时间:2024/06/14 01:57

一、constant
1. 目的:用来设置struts常量
2. 格式: <constant name=”” value=”“></constant>
3. name中的值需要到default.properties中找,里面全是默认值,可以在value里面修改。由于default.properties第一个加载,而struts.xml后加载,会覆盖默认值。
4. 常见几个常量:

struts.i18n.encoding=UTF-8 默认编码
struts.action.extension=do,action Action请求后缀
struts.devMode=true 开发模式
struts.configuration.xml.reload=true Struts配置文件重新加载
struts.ognl.allowStaticMethodAccess=true 使用OGNL表达式调用静态方法,需要改为true
struts.enable.DynamicMethodInvocation=true 动态方法调用,如在url中使用!调用action中的方法,需要设为true

:Struts2的常量配置可以在struts-plugin.xml、struts.xml、struts.properties、web.xml中配置,则Struts2框架会按如下搜索顺序加载Struts2常量:default.properties、struts-default.xml、struts-plugin.xml、struts.xml、struts.properties、web.xml,如果在多个文件中配置了同一个Struts2常量,则后面文件中配置的常量值会覆盖前面文件中配置的常量值。

通常推荐将Struts2常量集中在struts.xml文件中进行管理。

二、package属性
1. name
包的名字(必选),struts-default.xml中package的name为struts-default
2. extends
继承(可选),虽然是可选的,但在开发中一般都要继承struts-default,就是struts-default中package的名字,这个package已经为我们配好框架的很多功能,拿过来用即可
3. namespace
命名空间(可选),访问action时要在前面加上
4. abstract
抽象,设为true,不能直接使用,一般用来被继承,struts-default这个package就是抽象的
5. strict-method-invocation (可选)没用过, struts2.5
6. externalReferenceResolver (可选)没用过

三、package子标签
1. <default-action-ref> 配置默认action,即在该包下若找不到要访问的action,则就交给默认action处理
2. <default-class-ref> 当我们在配置Action的时候,如果没有为某个Action指定具体的class值时,系统将自动引用<default-class-ref>标签中所指定的类。在Struts2框架中,系统默认的class为ActionSupport,该配置我们可以在xwork的核心包下的xwork-default.xml文件中找到。
3.<default-interceptor-ref> 该标签用来设置整个包范围内所有Action所要应用的默认拦截器信息。事实上我们的包继承了struts-default包以后,使用的是Struts的默认设置。我们可以在struts-default.xml中找到相关配置:<default-interceptor-ref name=”defaultStack”>
4. <global-exception-mappings> 用来配置发生异常时对应的视图信息的,这是package级别的。
子标签:<exception-mapping result=”” exception=”“> ,用来配置具体信息
5.<global-results> 该标签用于设置包范围内的全局结果集。在多个Action返回相同逻辑视图的情况下,可以通过<global-results>标签统一配置这些物理视图所对应的逻辑视图
子标签 :<result> 具体结果
6. <interceptors> 通过该标签可以向Struts2框架中注册拦截器或者拦截器栈,一般多用于自定义拦截器或拦截器栈的注册
子标签:<interceptor>拦截器,<interceptor-stack>拦截器栈
7. <result-types> 结果类型集合
子标签:<result-type>
8. * <action>
1. 属性:name,class,method,converter
2. name:Action的名字,可以加上通配符*
3. class:Action的类所在全路径,不填默认ActionSupport
4. method:Action中方法的名字,不填默认execute,当Action中使用*时,可以用{1}取得*所替代的内容
5. converter:Action自定义类型转换器(2.3好像没有用到到这个,具体)
四、action子标签
1. <allowed-methods> 允许调用的方法
2. <exception-mapping> 异常处理,这是action级别的,可以覆盖package级别
3. <interceptor-ref> 拦截器栈
4. <param> 为action中某些属性设置默认值
5. <result> 结果
- 属性:name,type
- name:action中方法返回的字符串,根据字符串执行哪个result
- type:结果类型,struts2有10种,还可以自己自定义,默认为转发dispatcher,其中5个常用的
- 子标签<param>,携带参数

五、unknown-handler-stack
具体可以参考

原创粉丝点击