2017-8-12 Struts2学习笔记三

18 篇文章 0 订阅
5 篇文章 0 订阅

一、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
具体可以参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aabond

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值