struts.xml中action标签的学习

本文详细介绍了Struts2框架的配置方法,包括如何定义Action类、如何通过通配符简化配置以及动态方法调用(DMI)的实现方式。同时,还介绍了如何利用Struts2的内置结果类型来控制视图的展现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<package name="front" namespace="/" extends="struts-default">
    <action name="index" class="com.ying.struts2.front.action.IndexAction">
        <result name="success">/Hello.jsp</result>
    </action>
</package>


在action中定义一个class,如上面的代码。这个class可以任意定义,但是它一定要包含一个public String execute()方法。但是一般说来这个类我们都是通过继承 com.opensymphony.xwork2.ActionSupport 这个类来实现的,因为在ActionSupport中已经定义了很多有用的方法,子类可以直接拿来用。

execute()方法的返回值和result标签里的name属性一一对应,将决定我们要调用哪一个jsp文件。
在接口 com.opensymphony.xwork2.Action 中已经预先定义了一部分result的name属性可能值,包括success, none, error, input, login等等。当然我们自己也可以定义一些返回值,并在result中设置相对应的name值。 

另外我们可以在action标签里增加属性method,这样在调用类的时候就会调用指定的这个method,而不是默认的execute()方法。但是这种方法不推荐使用。我们推荐通过动态方法调用(DMI)来实现调用不同的方法,即在URL中指定方法名 http://localhost:8080/webappname/namespace/action!method  

此外,我们还可以通过通配符来配置struts.xml文件,这会使得配置文件及其的简洁。如下
<package name="front" namespace="/" extends="struts-default">
    <action name="*_*" class="com.ying.struts2.front.action.{1}Action" method="{2}">
        <result name="success">/{1}_{2}.jsp</result>
    </action>
</package>
*是通配符,{1}指代第一个*,{2}指代第二个*。
当传过来的URL为http://localhost:8080/webappname/Teacher_add时,它会调用TeacherAction类的add()方法,当其返回值是success时,会将请求转到Teacher_add.jsp来处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值