struts2之配置Action

pakage配置:
Struts2通过包组织Action,包使用<package></package>,配置package必须指定name属性,该name属性必须是唯一标识,还可以指定extends属性,该属性必须是另一个包的name属性,关于包的属性如下:
1.name:必填属性
2.extends:可选属性,指定该包继承其他包
3.namespage:可选属性,定义该包的命名空间,为了处理同一个web应用中包含同名Action的情形,同一个命名空间中不能有同名的Action,如果没有指定命名空间,所有的action处于默认的命名空间中,如果指定了命名空间,URL为命名空间+Action名
4.abstract:可选属性,指定该报是否为抽象包,抽象包不能含有Action

Action配置:
action属性:
1.name属性:必填属性
2.class属性:可选属性,指定类名,如果省略,则默认使用ActionSupport类作为逻辑处理器
3.method属性:可选属性,如果省略,默认使用excute()方法
action只是一个逻辑控制器,并不直接对浏览器生成任何响应,因此,配置Action应该指定逻辑视图和物理视图之间的对应关系。
如果需要在name属性中使用斜线(/),需指定struts.enable.SlasheInActionNames常量为true,通常不允许name属性使用点(.)和中划线(-)

动态调用Action方法:
第一种方式:
1、配置struts.xml中的常量:

<constant name="struts.enable.DynamicMethodInvocation"  value="true"/>

2.配置struts.xml中的action子标签<allowed-methods>:

<allowed-methods>loginTest</allowed-methods>

3.配置jsp中的action属性:

action="login!loginTest"

第二种方式:
修改第二种方式,在action标签的属性中配置method属性:

<action name="login" class="action.LoginAction" method="loginTest">

struts2中通配符的使用:
举例1,在方法中使用通配符

<action name="*" class="action.HelloWorldAction" method="{1}">

如果方法为test,则name=“test”,以此类推

举例2,在class属性中使用通配符:

<action name="*" class="action.{1}Action" method="{1}">

举例3,在result中使用通配符:

<result>/{1}.jsp</reuslt>```

struts默认校验文件命名规则如下:
ActionName-validation.xml,即如果有MyAction的Action类,则应该提供名为MyAction-validation.xml的文件,在struts中,方法对应的校验文件先校验,比如请求路径:.../Book_save.action,系统优先使用BookAction-save-validation.xml校验文件。

action匹配顺序:
1.没有通配符的action name属性
2.按照有统配符的action name在struts.xml中的顺序匹配
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值