表单的代码:
<form  id="search" method="post" action="/MessageView">
<input type="hidden" name="FKeyID" />
<input type="hidden" name="FFID"/>
<input type="hidden" name="IsModel" />
</form>
js脚本中的提交代码:
function searchMS(keyid,ffid,isModel){
document.getElementById("FKeyID").value=keyid;
document.getElementById("FFID").value=ffid;
document.getElementById("IsModel").value=isModel;
alert(document.getElementById("FKeyID").value);
//document.getElementById("search").action="";
document.getElementById("search").submit();
}
servlet中的处理代码:
String id=request.getParameter("FKeyID");
String fid=request.getParameter("FFID");
String ismodel=request.getParameter("IsModel");
String pages="/views.jsp";
System.out.println("id="+id+"  fid="+fid+" ismodel="+ismodel);
RequestDispatcher dis=this.getServletConfig().getServletContext().getRequestDispatcher(pages);
dis.forward(request,response);
描述:
1.js脚本可以正常运行,能将值带到hidden的value中,submit()也能提交
2.servlet中可以取得表单提交过来的值,打印显示也正常
问题:
RequestDispatcher dis=this.getServletConfig().getServletContext().getRequestDispatcher(pages);
dis.forward(request,response);
此段代码没有效果。
补充:
如果不用js提交,而用按钮提交,则servlet可以正常运行,转发有效。

解决方案 »

  1.   

    看不出问题所在,既然按钮可以提交,那你给一个隐藏按钮bthSubmit,然后把:
    document.getElementById("search").submit();
    换成这行看看行不行:
    document.getElementById("btnSubmit").click();
      

  2.   

    谢谢,刚刚试了,也还是不行,效果和submit()一样,无法转发
      

  3.   

    确实很离谱!
    request.getRequestDispatcher(pages).forward(request,response);试试, 用当前传过来的request
      

  4.   

    对了,再补充一下,我是从超链接的onclick事件调用的searchMS(keyid,ffid,isModel)
      

  5.   

    超链接 调用JS事件加个return false;比如 onclick = "searchMS();return false;"
      

  6.   


    不然的话就会跳转到你的href指向的那个了
      

  7.   

    哈哈,我的问题解决了,问题出在了超链接上,
    一共有两处问题:
    1.是href上的问题:一开始写的是href=“”是不行的,写成href=“#”,
    2.然后就是onclick事件上没有加return false;在此十分感谢大家的帮助