struts2中多个submit向一个Action提交

 有时候我们需要这样一种情况:
一个form表单,对应多个submit,需要提交到一个action,那么这时候我们应该怎么做呢?
其实struts1中就有关于多submit提交的处理方式,这里咱们只涉及以下struts2,有兴趣的同胞可以实现以下:

我们都知道请求到一个action可以根据struts.xml文件中method属性,来调用类里的不同方法,当然还有一种方式不用指定method,而通过请求,也可以实现同样的效果,语法如下: login!validate.action
这个请求表示的是:我们要访问 login的action,执行相对应类里的 validate方法

闲话少叙,跟我一起过一遍实例流程,你或许会明白一些:
1。新建web项目
2。加入我们struts2的jar包,并配置web.xml文件,增加struts2的过滤器。
<filter>
<filter-name>struts2</filter-name>
 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
 <filter-mapping>
<filter-name>struts2</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>
3。 新建struts2的核心配置文件struts.xml
4。新建一个Action类。比如叫Login,里有delete和detail方法,和页面请求的方法名对应
public class LoginAction {
public Stringdelete(){
System.out.println("delete operation"); return "delete"; }
 public Stringdetail(){
System.out.println("detail operation"); return "detail"; }
 }
5。新建jsp页面,比如叫index.jsp,代码如下(我用html以及struts标签两种方式来实现,中间用分割线分开)
<body>
 <form action="login.action" method="post">
 <input type="submit"name="method:detail" value="detail1">
 <input type="submit"name="method:delete" value="delete1">
</form> <hr>
<s:form action="login">
 <s:submitname="detail" value="detail" method="detail"></s:submit>
<s:submitname="delete" value="delete" method="delete"></s:submit>
</s:form>
</body>

6。修改我们的struts.xml文件,配置action节点,但是不用指定具体的method
<package name="login" extends="struts-default">
<!--  这里不用指定method属性,具体的method在请求里 -->
<action name="login" class="com.sun.demo.LoginAction">
 <result name="detail">/detail.jsp</result>
 <result name="delete">/delete.jsp</result>
</action>
 </package>
7。新建detail.jsp和delete.jsp页面。
8。访问我们的index.jsp页面,看到页面中四个submit按钮,按下任意一个都可以看到相应的结果。


好了,先到这里吧,试验有结果吗?O(∩_∩)O~是不是比较简单~~

感谢: http://www.talentdigger.cn/home/space-512-do-blog-id-26466.html   的主人


实验结果:因为我需要文字链接的效果,所以用以下方法来提交:
<s:a href="menu!wenzi.action">文字链接效果</s:a>

下面另一博主写的一个提交到action的方法,先收下

  • <s:iterator value="#request.userList">   
  •     <tr align="center">            
  •       <td><s:property value="id"/> : <s:property value="username"/></td>   
  •       <td><s:property value="age"/></td>   
  •       <td><s:property value="sex"/></td>   
  •       <td><s:property value="address"/></td>   
  •       <td>   
  •         <s:a href="userAction!addUser.action">添加</s:a> |    
  •             //第一种方式,在标签内使用标签时用%   
  •             <s:a href="userAction!loadUser.action?user.id=%{id}">编辑</s:a> |          
  •            //第二种方式:使用<s:url>标签解决     
  •         <s:url id="idUrl" action="userAction!delUser.action">   
  •            <s:param name="user.id" value="%{id}"></s:param>   
  •         </s:url>    
  •         <s:a href="%{idUrl}">删除</s:a>   
  •                //第三种:直接加入   
  •         <a href="<s:url action="userAction!delUser.action">   
  •                     <s:param name="user.id" value="id"/>   
  •                  </s:url>">删除2  
  •               </a>           
  •       </td>   
  •     </tr>   
  •  </s:iterator> 
    感谢:http://liuzidong.iteye.com/blog/919289  的主人
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值