在form中加一属性为action的隐藏输入域,然后在Action中以此为判据
或使用DispatchAction

解决方案 »

  1.   

    楼上能不能说详细点,小弟struts 不是很熟悉!
      

  2.   

    建议你看孙慧勤的struct书。
    里面有提到这个问题,扩展STRUCT的一个基类即可,具体我不大清楚了。
      

  3.   

    LookupDispatchAction  试试
      

  4.   


    在JSP中页面中,定义Form时指定对应的ActionForm即可~~~注意:JSP中不支持Form嵌套~~至于Action,你可以用DispathAction,也可以用普通的Action,然后在Action中用If Else判断~~~
      

  5.   

    你可以结合java Script来实现:
    function tj(opname)
    {
       document.form1.action = "testaction.do?param="+opname;
       document.form1.submit();
    }
    <form method="post" name="form1">
       <input type=button name="op1" value="增加" onclick="javascript:tj('add')">
       <input type=button name="op2" value="删除" onclick="javascript:tj('del')">
    </form>然后在testaction.java里根据不同的param来操作。
      

  6.   

    同意楼上的,通过传参数,在action中根据不同的值判断
      

  7.   

    不一定要用submit啊,可以用button,然后在JavaScript中提交这个按钮想提交的form就行了
      

  8.   

    用 LookupDispatchAction  吧,专门就是处理这种情况的
      

  9.   

    用LookupDispatchAction  ,怎么将按纽显示中文呀!<html:submit property="method" >
        <bean:message key="button.open"/>
             </html:submit>  
                                                  button.open=open  这样是对的,按纽显示是英                                文,                         如果改成     button.open=开  按纽显示中文,但是就报错,请问应该怎么处理呀?高手快点指点呀!急
      

  10.   

    用用户的Add,Update,Deelte做例子:
    JSP中:
      <html:form="/userAction">
      <input type="hidden" name="opt">
      ..........
      <input type="button" value="Add" onclick="opt.value='doAdd';submit()">
      <input type="button" value="Update" onclick="opt.value='doUpdate';submit()">
      <input type="button" value="Delete" onclick="opt.value='doDelete';submit()">
      </html:form>
    UserForm中:
      String opt=null; 并有opt的getter,setter方法。
    UserAction中:
      UserForm userForm=(UserForm)form;
      String opt=userForm.getOpt();
      。。
    根句opt做不同的操作就行拉。这样就只用一个Action和From。
    OK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      

  11.   

    更好的解决方法是,把opt及他的getter,setter方法放在一个BaseForm中,每个Form都继承BaseFom,
    这样不用每个模块的Form都写opt.我认为最好的解决方法。
      

  12.   

    晕,不用说也是用Javascript来解决比较好了,清晰明了,方便维护
      

  13.   

    别去搞风搞雨啦,xiang_zi(OuChSong)的方法是最方便了,而且像这样的逻辑个人认为最好不要放在FORM里去实现,毕竟像这样的功能不会是每个个FORM或ACTION都有的,不符合设计思想.你可以结合java Script来实现:
    function tj(opname)
    {
       document.form1.action = "testaction.do?param="+opname;
       document.form1.submit();
    }
    <form method="post" name="form1">
       <input type=button name="op1" value="增加" onclick="javascript:tj('add')">
       <input type=button name="op2" value="删除" onclick="javascript:tj('del')">
    </form>然后在testaction.java里根据不同的param来操作。
      

  14.   

    让你的Action继承于LookupDispatchAction 然就好办了..根据参数action来执行不同的操作..
      

  15.   

    同意 dongdongmaster(冬冬) 的解决方法:
    不过可以采取这样来分开两个action实现,
    function add()
    {
       document.form1.action = "addaction.do";
       document.form1.submit();
    }
    function del()
    {
       document.form1.action = "delaction.do";
       document.form1.submit();
    }
    <form method="post" name="form1">
       <input type=button name="op1" value="增加" onclick="javascript:add()">
       <input type=button name="op2" value="删除" onclick="javascript:tj('del')">
    </form>这样就分开两个action 实现,更加合STRUTS的设计思想.一个ACTION 就是一个动作
      

  16.   

    <input type=button name="op2" value="删除" onclick="javascript:tj('del')">
    改为
    <input type=button name="op2" value="删除" onclick="javascript:del()">
      

  17.   

    一般来说,没有必要提交给不同的action,只要传不同的参数就行了,struts好像对同时提交给不同的action无能为力啊,因为它是根据action生成formbean实例的,action不确定,又怎么生成