我的js方法是这样的
function setUrl(){
  var dep_len = tree.currentNode.sourceIndex;
  var dep_code = dep_len.split("_");
  document.forms[0].action="/MY_SYSTEM/jsp/system/depinfo/DepInfo.do?cmd=getOneDep&dep_code="+dep_code[1];
  alert(document.forms[0].action);
  document.forms[0].submit();
}我的action是这样的
public class DepInfoAction extends DispatchAction{
 public ActionForward getOneDep(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
    String dep_code = (String)request.getParameter("dep_code"); 
    System.out.println("================="+dep_code);
    return mapping.findForward("success");
 }
}
===================================问题==========================================================我js里alert(document.forms[0].action);打印的值包括dep_code[1]的值都取到了。
action里的System.out.println("================="+dep_code);竟然没有打印出来dep_code的值,而是为空!求解,不胜感激!!

解决方案 »

  1.   

    把url encode一下.document.forms[0].action="/MY_SYSTEM/jsp/system/depinfo/DepInfo.do?cmd=getOneDep&dep_code="+dep_code[1]; &符 有问题.
      

  2.   

    document.forms[0].action="/MY_SYSTEM/jsp/system/depinfo/DepInfo.do?cmd=getOneDep&dep_code="+dep_code[1]; 
    这里的
    request.getParameter("cmd"); 能打印出来吗,如果不能,说明你的提交的路径配置错误
    如果能,说明
    dep_code参数名称有问题,把下划线去掉看看
      

  3.   

    有可能是你的页面中使用了<input type="submit">来提表单的,而你用用的是JS方式来提交,这样会重复提交表单,第一次是提交的JS方式的,第二次是SUBMIT发出的,会复盖之前的数据,所以发到服务端就是NULL了,把SUBMIT改成<input type="button">应该就没有问题。
      

  4.   


    document.forms[0].action="/MY_SYSTEM/jsp/system/depinfo/DepInfo.do?cmd=getOneDep&dep_code="+dep_code[1]; 你这个地方的dep_code[1]; 哪来的,你上面只声明了dep_codealert(document.forms[0].action); 你这一句打印出来的值是什么???
      

  5.   

    你这个URL也太长了吧改短点。呵呵
      

  6.   

    System.out.println("================="+dep_code); 既然这一句已经运行了,那么提交的时候肯定是跑到这个action了。
    你是否有重定向?
    DepInfo.do这个里面都做了些什么处理?
      

  7.   

    alert(document.forms[0].action); 
    显示了正确的值System.out.println("================="+dep_code);
    已经打印说明已经跳转到了action
    路径之类的没有写错是不是要把url encode()一下
      

  8.   

    dep_code[1]里面有中文或其他的非utf8之类的字符吧
    强烈建议encode一下,再在action里解码
      

  9.   

    js里:var dep_code[1] = encodeURIComponent(dep_code[1]);
    action里:
    String dep_code = (String)request.getParameter("dep_code"); 
    dep_code = new String(dep_code .getBytes("ISO8859_1"), ”UTF-8“);
      

  10.   

    var dep_code = dep_len.split("_");  所以dep_code[1]是有的。dep_code[1]建议打出来看看是什么值。