Struts2 多方法的Action

Action中的方法代表业务逻辑,那么一个模块中的多个业务逻辑如何用Action来处理呢?我们有2种办法来处理这个问题:

  1. 一个Action对应一个业务逻辑,实现方便,但是Action数量多,struts.xml中需要配置的内容也多,这种方法不推荐;
  2. 一个Action对应多个业务逻辑,例如表的CRUD操作,含有多个业务逻辑,我们只写一个Action来实现,Action的数量没有增加,struts.xml的配置也简单,所以这种方法是我们推荐的做法。

Action中自定义方法的声明和execute方法一样,方法的调用路径为“Action名称!方法名称.action”。

以用户表Userinfo的CRUD操作为例,看一下多方法Action的代码:

package com.wdl.duofangfaAction;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class curdAction extends ActionSupport {
    
    public String add() throws Exception{
        System.out.println("curdAction..add");
        return "success";
    }
    public String updata() throws Exception{
        System.out.println("curdAction..updata");
        return "success";
    }
    public String delete() throws Exception{
        System.out.println("curdAction..delete");
        return "success";
    }
}

struts.xml配置如下

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <package name="curd" namespace="/curd" extends="struts-default">
        <action name="curdaction" class="com.wdl.duofangfaAction.curdAction">
            <result name="success">/MyJsp.jsp</result>
        </action>       
    </package>
</struts>

前台页面链接格式 ./namespace/actionname!action类方法名().action

<a href="./curd/curdaction!add.action">add</a><p/>
    <a href="./curd/curdaction!updata.action">updata</a><p/>
    <a href="./curd/curdaction!delete.action">delete</a><p/>

 

posted @ 2015-01-05 14:49  看海8801  阅读(256)  评论(0编辑  收藏  举报