一个表单,多个提交按钮的处理方法

●LookupDispatchAction:  当一个表单有多个提交按钮时,可实现不同提交按钮使用同一action调用不同方法

                         它继承DispatchAction,故已实现一个action分发多个命令

 

  在DispatchAction基础上做了一些改动.实质都是根据xx.do?method=cc的cc,找到action相应命令方法执行

 

  1.编写多个提交按钮的表单.这里使用Struts标签html,bean,以及国际化资源文件

    bean:message-key属性值引用的国际化资源文件的键

    submit-property属性值为请求的方法参数名,值为key表示的键对应的值

    翻译之后为<input type="submit" name="method" value="国际化资源文件中key所对应的值" />

    提交的请求实为:  user.do?method=value值

 

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

 

    <html:form action="user.do" method="get">

        name:<html:text property="userName" /><br/>

    <html:submit property="method"><bean:message key="button.add" /></html:submit>

    <html:submit property="method"><bean:message key="button.del" /></html:submit>

    </html:form>

 

  2.编写ActionFormBean,并配置form-bean

 

public class UserFormBean extends ActionForm {

 

private String userName;

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

}

 

<form-beans >    <form-bean name="user" type="xiaoxu.vo.UserFormBean" />    </form-beans>

 

  3.编写action,并配置action

    注意该action必须有name属性,即该ActionMapping必须配置ActionForm

    分发的命令,即方法,参数列表与execute方法一致

    getKeyMethodMap是LookupDispatchAction的抽象方法,实现提交按钮的value值与命令方法的匹配

 

public class UserAction extends LookupDispatchAction {

 

/*两个命令方法,addUser,delUser*/

public ActionForward addUser(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

System.out.println("添加用户");

return null;

}

public ActionForward delUser(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

System.out.println("删除用户");

return null;

}

protected Map<String,String> getKeyMethodMap() {

Map<String,String>  map=new HashMap<String,String> ();    //创建Map集合

//key引用的国际化资源文件的键,值为命令方法名

//父类将会做进一步处理.从国际化资源文件中根据键获取值,再匹配命令方法名

map.put("button.add","addUser");

map.put("button.del","delUser");

return map;

}

}

 

<action-mappings>

    <action path="/user" type="xiaoxu.action.UserAction" name="user" parameter="method" />

</action-mappings>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值