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 的主人
一个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 的主人
相关文章推荐
- JS实现一个表单form,多个submit按钮提交时带不同的action参数
- struts2页面有多个按钮提交不同action或一个按钮提交多个action
- js 在一个页面两个submit 提交同一个form 到不同的action
- js 在一个页面两个submit 提交同一个form 到不同的action
- struts2 action中获取不到从jsp页面提交过来的bean
- struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)
- struts2 向action提交list
- Struts2配置一个Action实现多个请求
- Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
- Struts2(二)---将页面表单中的数据提交给Action
- struts2中,将表单提交到action某一具体方法
- jsp页面添加一个集合数组到action(用序列化提交)
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结 今天在调试一个基础的Struts2框架小程
- Struts2教程2:处理一个form多个submit(含源代码)
- Struts2教程2:处理一个form多个submit
- Struts2 通配符映射(wildcard mappings) 多个请求一个action处理
- struts2,jsp页用include访问一个action
- 【实例】struct框架一个表单两个提交按钮-高级Action应用三(LookupDispatchAction应用)