点击这些按钮时进入到同一个action中找到相应的方法
2009-10-25 20:51
411 查看
HTML code
问题是这样的:页面上有多个按钮,我需要当点击这些按钮时全部进入到同一个action中,但是这个action中有不同的方法.比如insert() delete()等,我点击不同按钮时怎么能够让它找到相应的方法呢?
不用JavaScript、DispatchAction就可以来做:
HTML code
假如用户点了“插入”按钮,这时:
request.getParameter("insert")=="插入";
request.getParameter("delete")==null;
request.getParameter("modify")==null;
request.getParameter("list")==null;
以此类推!也就是说无论多少submit类型的按钮,只有一个不为空。这时在Struts1的Action中以用反射方法来做:
Java code
<form action="arrayaction.do" method="get"> <input type="button" value="插入"/> <input type="button" value="删除"/> <input type="button" value="修改"/> <input type="button" value="显示"/> </form>
问题是这样的:页面上有多个按钮,我需要当点击这些按钮时全部进入到同一个action中,但是这个action中有不同的方法.比如insert() delete()等,我点击不同按钮时怎么能够让它找到相应的方法呢?
不用JavaScript、DispatchAction就可以来做:
HTML code
<form action="arrayaction.do" method="get"> <input type="button" value="插入" name="insert"/> <input type="button" value="删除" name="delete"/> <input type="button" value="修改" name="modify"/> <input type="button" value="显示" name="list"/> </form>
假如用户点了“插入”按钮,这时:
request.getParameter("insert")=="插入";
request.getParameter("delete")==null;
request.getParameter("modify")==null;
request.getParameter("list")==null;
以此类推!也就是说无论多少submit类型的按钮,只有一个不为空。这时在Struts1的Action中以用反射方法来做:
Java code
public class MyAction extends Action{//注意,这里并不需要继承DispatchAction public ActionForward execute(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { String func = {"insert","delete","modify","list"}; String methodName = null; for(String f : func){ if(request.getParameter(f) != null){ methodName = request.getParameter(f); break; } } try { //利用反射技术让程序自动找到要处理的方法并执行之,注意methodName参数 Method method = this.clazz.getDeclaredMethod(methodName, ActionMapping.class, ActionForm.class, HttpServletRequest.class, HttpServletResponse.class); return (ActionForward)method.invoke(this, mapping, from, request, response); } catch (Exception e) { request.setAttribute("message", e.getMessage()); return mapping.findForward("message"); } } public ActionForward insert(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { //todo } public ActionForward delete(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { //todo } public ActionForward modify(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { //todo } public ActionForward list(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { //todo }
来自:http://topic.csdn.net/u/20091016/14/d466dc26-7ca0-4006-b413-83e1cb63547d.html
相关文章推荐
- (三十一)工具方法:获得应用程序包名/安装apk/如何获得当前栈顶的Activity/android如何实现点击一个按钮进入指定网页
- 一个窗口里包含一个iframe,点击iframe内的submit按钮,返回的视图总是显示在iframe中,我想要的效果是点击按钮后返回的视图是在浏览器窗口中...?asp.net mvc 的action中,不用js怎么实现??????????
- 写一个方法进行各种属性的更新,而不要每个界面设置改变都改变一个属性。就是点击应用或确定按钮时调用这个更新属性的方法,遍历所有(控制对象属性的)界面控件的状态(值),进行属性修改和刷新。
- 在ASP.NET中点击一个按钮后让它变灰的简单方法
- 在ASP.NET中点击一个按钮后让它变灰的简单方法
- iphone软件点击评价按钮进入评论页面方法
- 设置一个监听器监听多个按钮事件(点击按钮进入一个指定的网站)
- Jquery 拓展一个点击按钮自动高亮的方法
- 点击页面上的一个按钮时,如何触发controller中的方法
- UIWebView中视频点击链接直接全屏播放而不是点击一个播放按钮的实现方法
- UIView上添加了一个按钮和一个单击手势的事件相应,互相不影响的处理方法。。
- UIView上添加了一个按钮和一个单击手势的事件相应,互相不影响的处理方法。。
- swing点击按钮 打开一个浏览器窗口的方法
- UITableView点击cell之后进入一个新的viewController界面,在pop回来坐标下移64像素的解决方法
- 在HTML页面上点击按钮按钮携带参数flag,触发一个JS函数,经过判断是否flag==1,分别跳到两个指定的方法(或者页面)
- ionic综合+首页右上角点击进入包含一个轮播+进入后显示选项左上角有一个后退按钮每个选项包含内容
- javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
- 如果某个页面上点击按钮发起了一个http url请求,去执行一个action,但是还没等这个action完成,我就刷新了这个页面,然后又点击了这个按钮,这样之前的那次http url请求还在执行吗?
- javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
- JS实现点击按钮自动增加一个单元格的方法