怎样在strust中的action中区别一个form中的2个按钮的行为

解决方案 »

  1.   

    不要使用<html:submit>
    使用html的原有按钮  b1与b2用来区分不用的按钮
    <input type="button" name="btn1" value="按钮1" onclick="func_btn('b1')">
    <input type="button" name="btn2" value="按钮2" onclick="func_btn('b2')"><script>
    function func_btn(btn){
       if(btn=="b1")
           document.forms[0].action="第一个按钮的action";
       else  if(btn=="b2")
           document.forms[0].action="第二个按钮的action";
       else{}
       document.forms[0].submit();}
    </script>
      

  2.   

    我支持coolwzjcool 的做法,不错的思路
      

  3.   

    对用button,比较灵活,想怎么写就怎么写,我在项目中也是这样做的
      

  4.   

    if(btn=="b1")
           document.forms[0].action="第一个按钮的action";
       else  if(btn=="b2")
           document.forms[0].action="第二个按钮的action";
    那我改天把id名改了,或者加新button呢??这样写死是不对的
      

  5.   

    同意coolwzjcool(学习JAVA)]如果你怕id变的话, 那你就直接传一个action的路径就可以了啊<input type="button" value="按钮1" onclick="func_btn('第一个按钮的action')"><input type="button" value="按钮2" onclick="func_btn('第二个按钮的action')"><script>
    function func_btn(actionAddress){       document.forms[0].action=actionAddress;       document.forms[0].submit();
    }
    </script>
      

  6.   

    .... extends LookupDispatchAction {
        protected Map getKeyMethodMap(){
    HashMap map=new HashMap();
    map.put("button.delete","delete");//button.delete,按钮的 message key
    map.put("button.update", "update");
              return map;
    }
         public ActionForward delete(...){}//对应方法
        public ActionForward update(...){}
      

  7.   

    用JS来做,是最好的,支持coolwzjcool
      

  8.   

    你直调用按钮onclick事件的时候用js提交,那样就不用判断了。
      

  9.   

    倒,没一个用Action里面提供的方法解决的?
    首先:如果你只有html:submit html:cancel的按钮,可以判断isCancelled是否为true这个方法;
    如果你不止一个按钮,那么你先获取它的value值,然后根据value值选择不同的解决方法.
      

  10.   

    同意楼上的LookupDispatchAction 用法,sturts中可以支持多按钮的情况.
    LookupDispatchAction 这个很好用.推荐
      

  11.   

    其实方法很多,各位都提到了:
       既然你用struts那你最好还是用楼上的方法,就是用LookupDispatchAction来实现
       这样你就会更好的实现MVC
      (个人意见)
      

  12.   

    前台我想用标签的形式
     <html:submit property="action" value="增加">
                <bean:message key="button.add"/></html:submit><html:submit property="action" value="修改">
                <bean:message key="button.updata"/></html:submit>
    这样写可以吗?运行时出现错误如下:javax.servlet.jsp.JspException: Cannot retrieve mapping for action /test.Action
      

  13.   

    你的错误是在<form action="">里面,提示没找到对应的action mapping
      

  14.   

    ……你创建的是.do还是/*的?那么form里面的action也要写对应的啊
      

  15.   

    <action path="/course_search"
    type="b.b41.CourseSearchAction" name="CourseSearchForm"
    scope="request" validate="true"
    input="/pages/search.jsp"
    parameter="search=search, apply=apply, default=init">
    <forward name="successInit" path="/pages/search.jsp" />
    <forward name="success" path="/info.do" />
    </action>注意parameter里的内容,分别对应jsp页面的search按钮和apply按钮,也对应了自己定义的Action的search和apply方法