STRUTS系列之 Action配置

本文介绍了Struts2框架中Action的多种配置方法,包括基本配置、使用method属性指定不同方法以及利用通配符简化配置的过程。通过这些技巧,开发者可以更灵活高效地管理大型项目。

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

基本的配置
//UserAction.java
public class UserAction extends ActionSupport{
    private String name;

    public String execute() throws Exception{
        .......
        return SUCCESS;
    }
}

配置如下:

<action name="login" class="com.jeysine.action.UserAction ">
    <result>/success.jsp</result>
    <result name="error">/error.jsp</result>
</action>

在上述例子中,每一次register请求,就会执行RegisterAction 的execute()方法。假如一个action里面有多个执行请求的方法,这时候可以使用method属性。

使用method属性

修改类如下:

//UserAction.java
public class UserAction extends ActionSupport{
    private String name;

    public String create() throws Exception{
        .......
        return SUCCESS;
    }
    public String execute() throws Exception{
        .......
        return SUCCESS;
    }
    public String delete() throws Exception{
        .......
        return SUCCESS;
    }
    public String edit() throws Exception{
        .......
        return SUCCESS;
    }
}

修改配置:

<!-- 请求execute()方法 -->
<action name="user" class="com.jeysine.action.UserAction ">
    <result>/success.jsp</result>
    <result name="error">/error.jsp</result>
</action>

<!-- 请求create()方法 -->
<action name="userCreate" class="com.jeysine.action.UserAction " method="create">
    <result>/success.jsp</result>
    <result name="error">/error.jsp</result>
</action>

<!-- 请求delete()方法 -->
<action name="userDeletee" class="com.jeysine.action.UserAction " method="delete">
    <result>/success.jsp</result>
    <result name="error">/error.jsp</result>
</action>

<!-- 请求edit()方法 -->
<action name="userEdit" class="com.jeysine.action.UserAction" method="edit">
    <result>/success.jsp</result>
    <result name="error">/error.jsp</result>
</action>
使用通配符映射

当遇到大型项目时,action要配置很多,为了减少配置,我们可以使用通配符映射。例如有配置如下:

<action name="create*" class="com.jeysine.action.Create{1}Action">
    <reslut>/{1}.jsp</result>
</action>

当有一个请求为createUser时,便会访问CreateUserAction的execute()方法,结果页面为User.jsp。
当有多个匹配符时,我们可以使用下划线来分隔,如:

<action name="*_*" class="com.jeysine.action.{1}Action" method="{2}">
    <reslut>/{0}.jsp</result>
</action>

当有一个请求为/User_create时,会访问UserAction里的create()方法。结果页面是User_create.jsp

使用通配符要注意配置的优先级,,例如:

<!-- 配置1 -->
<action name="*" class="com.jeysine.action.Create{1}Action">
    <reslut>/{1}.jsp</result>
</action>

<!-- 配置2 -->
<action name="create*" class="com.jeysine.action.Create{1}Action">
    <reslut>/{1}.jsp</result>
</action>

<!-- 配置3 -->
<action name="createUser" class="com.jeysine.action.CreateUser.Action">
    <reslut>/createUser.jsp</result>
</action>

当有一个请求为/createUser,会选择配置3,若请求为/createManager时,则会使用配置1,因为3的优先级最高,而配置1和2都使用通配符,所以就按配置的顺序来决定优先级。虽然这里的选择配置1和2都没差别,但若是配置1和2访问的不是同个action呢?所以最好是配置2放在配置1前面,以免出现难以排查的异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值