<form>
    <input type="button" value="插入" name="insert" onclick="document.form[0].submit()"/> 
    <input type="button" value="删除" name="delete" onclick="document.form[0].submit()"/>
    <input type="button" value="修改" name="modify" onclick="document.form[0].submit()"/>
</form>假如我有多个button,我在submit之后我要知道我是点击的哪个按钮.也就是说我提交之后我要得到相应的button的name,在action中我应该怎么得到啊?是用request对象么?有人知道么?

解决方案 »

  1.   

    换个思路,你用一个隐藏表单域来保存你当前点击的action,服务器端只要得到action的值就知道你做了什么操作。<form action="abc.php" method="get">
    <input type="hidden" name="action" /> 
        <input type="button" value="插入" name="insert" onclick="document.forms[0].action.value='insert'; document.forms[0].submit()"/> 
        <input type="button" value="删除" name="delete" onclick="document.forms[0].action.value='delete'; document.forms[0].submit()"/>
        <input type="button" value="修改" name="modify" onclick="document.forms[0].action.value='modify'; document.forms[0].submit()"/>
    </form>
      

  2.   

    可以提交给不同的三个action或者一个action的三个方法处理也可以呀
      

  3.   

    把点击的button的名字保存起来,传给后台 <form>
        <input type="button" value="插入" name="insert" onclick="alert(this.name);"/> 
        <input type="button" value="删除" name="delete" onclick="alert(this.name);"/>
        <input type="button" value="修改" name="modify" onclick="alert(this.name);"/>
    </form>
      

  4.   

    通过不同的名字来取得button的值
    document.表单名.value;取值
      

  5.   

    是Struts2的话就是
    Map map = ActionContext.getContext().getParameters();
    map  里面包括了所有提交的表单属性  
    点的哪个submit 就会有那个  其他没有点的 就没有
      

  6.   

    这不是你那个struts急急急的问题吗?
    按照你的要求来的话你用一个action就可以了,设置一个隐藏域传值进去判断。
    可以这样写
    <script language="javascript">
    function submitForm(ac){
    document.getElementById("op").value=ac;
    document.form[0].submit();
    }
    </script><form action="xx.do">
        <input type="hidden" name="op"/>
        <input type="button" value="插入" name="insert" onclick="submitForm('insert')"/> 
        <input type="button" value="删除" name="delete" onclick="submitForm('delete')"/>
        <input type="button" value="修改" name="modify" onclick="submitForm('modify')"/>
    </form>
    如果是继承dispatchaction写多个action
    可以这样写
    <script language="javascript">
    function submitForm(ac){
    document.form[0].action="xxx.do?op="+ac;
    document.form[0].submit();
    }
    </script><form>
        <input type="button" value="插入" name="insert" onclick="submitForm('insert')"/> 
        <input type="button" value="删除" name="delete" onclick="submitForm('delete')"/>
        <input type="button" value="修改" name="modify" onclick="submitForm('modify')"/>
    </form>
      

  7.   

    <form>
        <input type="button" value="插入" name="insert" onclick="document.form[0].submit()"/> 
        <input type="button" value="删除" name="delete" onclick="document.form[0].submit()"/>
        <input type="button" value="修改" name="modify" onclick="document.form[0].submit()"/>
    </form>
    假如用户点了“插入”按钮,这时:request.getParameter("insert")=="插入";
    request.getParameter("delete")==null;
    request.getParameter("modify")==null;
    //以此类推!也就是说无论多少submit类型的按钮,都只有一个不为空。这时在Struts的Action中以用反射方法来做:
    public class MyAction extends Action{//注意,这里并不需要继承DispatchAction    public ActionForward execute(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception {
            String func = {"insert","delete","modify"};
            String methodName = null;
            for(String f : func){
                    if(request.getParameter(f) != null){
                        methodName = request.getParameter(f);
                        break;
                    }
            }
    try {
    //利用反射技术让程序自动找到要处理的方法并执行之
    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
        }}
      

  8.   

    如果在servlet中获得的不是名字是这个名字的value
      

  9.   

    1.不建议把value设置成中文,可以用 1,2,3  然后再servlet中进行判断
    2.可以使用javascript改变 action  不同的button触发不同的 function提交到 不同的 action处理