您的位置:首页 > 编程语言 > Java开发

struts2中多个submit向一个Action提交

2011-09-10 19:03 218 查看
有时候我们需要这样一种情况:
一个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>

[align=left]</s:form>[/align]

</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>

感谢:/article/3885694.html 的主人
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: