我认为是不可能的,
ACTION的MAPPING是在WEB容器加载时就完成了的,
你不可能在运行时通过程序来重定向。
个人观点,仅供参考。。

解决方案 »

  1.   

    为什么这么做,如果在一个action里实现多个业务操作,可以继承DispatchAction,实现不同的方法
      

  2.   

    单报单有N个按钮,进N个ACTION是嘛?如果是的话,用JS就可以解决
      

  3.   

    请贴一下代码可以吗?在struts下我不知道如何用js来实现
      

  4.   

    DispatchAction
    加隐含字段method,用不同的方法实现不同要求,不要execute
      

  5.   

    请问怎么用DispatchAction 来实现一个Action中多个请求逻辑?
      

  6.   

    试试下面:<html:form  name="BorderShow_Form" action="/border_Show_Del_Action.do" type="FormBean.Border_ActionForm" method="post">    <html:button property="add" value="添加" onclick="javascript:Add();"/>
        <html:button property="del" value="删除" onclick="javascript:Del();"/>
        <html:button property="modify" value="修改" onclick="javascript:Modify();"/><br>
    </html:form>
    <javascript type="text/javascript">
      function Add()
      {
        BorderShow_Form.action="manage/border_show_add.jsp?pid=<%=pid%>";
        BorderShow_Form.submit();
      }
    </script>
      

  7.   

    楼上有一个错误name="BorderShow_Form" 应改为 styleId="BorderShow_Form"
      

  8.   

    用js
    <html:form name="mailForm" action="/WriteMail">
    <html:img page="/button_saveDraft.gif" onclick="saveDraft()"/>
    </html:form>
    <script language="javascript">
    function saveDraft()
    {
      document.mailForm.action="/SaveAsDraft";
      document.mailForm.submit();
    }
    </script>
      

  9.   

    不要name属性 name属性struts自动映射到jsp中来
    mailForm就是你在struts-config.xml中为该action配置的form-bean name
    <html:form action="/WriteMail">
    <html:img page="/button_saveDraft.gif" onclick="saveDraft()"/>
    </html:form>
    <script language="javascript">
    function saveDraft()
    {
      document.mailForm.action="/SaveAsDraft";
      document.mailForm.submit();
    }
    </script>
      

  10.   

    给你一小段代码~ 
    <html:form action="lockUsedAction.do" method="POST">
    <html:hidden property="fid" />
    <div>
    <table class="tableTool">
         <tr>
         <td><a href="#" onclick="openWin('goAdd')">< alt="新增" />新增</a></td>
         <td><a href="#" onclick="openWin('goUpdate')"><alt="修改" />修改</a></td>
         <td><a href="#" onclick="openWin('goShow')"><alt="查看">查看</a></td>
         <td><a href="#" onclick="deleteRecord()">< alt="删除" />删除</a></td>
        <td style="display:none"><a href="#" onclick="openWin('')"><alt="查询" />查询 </a></td>
        <td><a href="#"onclick="forceLoad('window','lockUsedAction.do?postMethod=queryByQueryInfo');">刷新</a></td>
    </tr>--------------------------------------------------------------------------function doSave(){
      var myfrm =document.forms[0];
      trimform(myfrm);
      judge= DocCheck(myfrm);
      if(!judge){
        return false;
      }
      var postValue="update";//update是action里面对应的update方法
      if(myfrm.fid.value==""){//fid就是表中的关键字段,如果为空的时候就调用add方法
                                这样的话就可以做到add和update同用一个页面了:)       postValue="add";//add 是action里面对应的新增的方法
      }
      myfrm.action="lockUsedAction.do?postMethod="+postValue;
      myfrm.submit();
    }js中对于的doSave()的方法,其他的方法就不给出了,都差不错
      

  11.   

    我也倾向于用js实现,什么 Dispatch的方式感觉麻烦了些,个人见解.
      

  12.   

    用JS实现起来更简单明了.
    这个问题我也遇到过.跟figoren用的方法不谋而合.
      

  13.   

    回复人: randb(从大二下学期开始不再迷茫!!狂学编程!!) ( ) 信誉:100  2005-12-17 14:43:04  得分: 0  
     
     
       
    我认为是不可能的,
    ACTION的MAPPING是在WEB容器加载时就完成了的,
    你不可能在运行时通过程序来重定向。
    个人观点,仅供参考。。  
     
    --------------------------------------------
    是可以的。
    确实,ACTION的MAPPING是在WEB容器加载时就完成了的,
    但是,你却可以在程序中,对ModelConfig的内容进行修改。可以实现,但是却不推荐!
      

  14.   

    javaScript:
    function disp(obj){
        var form = document.getElementById("Proc1");
        if (条件1) then
            form.action = "XXXXX1.do";
        else
            form.action = "XXXXX2.do";
        endif
        form.submit();
    }在页面上写<FORM id="Proc_page">,不要用form的name,action的属性。<INPUT onclick="disp(form)" type=button name=btn1>
      

  15.   

    DispatchAction
    加隐含字段method,用不同的方法实现不同要求,不要execute
      

  16.   

    : jsjzzh(蚯蚓) ( ================
    兄台原来是学ASP的吧?
      

  17.   

    document.forms[0].action="你要转向到的Action";你那么写也是可以的,如果执行不了请检查你的form表单的名称是否与struts的配置文件中的form名称相对应!不过建议还是使用我上面写的那种方法
      

  18.   

    我倾向于使用DispatchAction
    WriteMail.do这个action只需要里面分开两个方法。其中一个是WriteMail.do?method=save
      

  19.   

    :netstu(孤心) 何以见得。我一般都学伪代码,只要功能对就可以了。