我的JSP页面上有一个文本框,一个下拉列表框,还有一个submit按钮,想实现的功能是:在文本框里填写,和选择了下拉列表选项以后,点发送(发送到本页面),发送成功以后,文本框跟下拉列表框里的值都不变,(此功能已经实现)现在就是刷新的功能没有实现,右键刷新后跟点发送是一样的效果,请高手帮帮忙啊,谢谢了!

解决方案 »

  1.   

    给你个最原始的
    var xmlHttp;
    //生成一个xmlHttp对象
    function createXMLHttpRequest(){
        if (window.ActiveXObject) {
         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }else if (window.XMLHttpRequest){
         xmlHttp = new XMLHttpRequest();
        }
    }
    function changeAreaValueSingleton(value){
       //生成对象
        createXMLHttpRequest();
       //调用handleStateChangeAV();
        xmlHttp.onreadystatechange = handleStateChangeAV;
    //比如你现在要把value传到后台去
      *1  var url = "changeLeagueValue.do?ValueId="+value;
        xmlHttp.open("GET",url,true);    xmlHttp.send(null);
    }
        
    function handleStateChangeAV(){
           //这个函数是回调函数,到了这个,已经结束了后台的操作了,但是页面不会刷新
    if(xmlHttp.readyState==4){
    if(xmlHttp.status==200){
             //上面两不是状态判断,固定写法
                                //如果你后台返回的是简单的字符串,不是xml格式,用xmlHttp.responseText
    changeAV(xmlHttp.responseXML);
    }
    }
    }
    //这个是最后调用的函数
    function changeAV(msg,args){
       //msg就是xmlHttp.responseXML,这个函数里面你可以做你想做的事
        //比如执行完只需要提示,直接在这个函数里写个alert就行了
    }以上是原始的ajax,有些目前看不懂的,你不用去管他,这个是固定写法、你要修改的地方是*1处你自己的url,以及最后changeAV函数的内容,当然函数名称随便你自己取。调用的入口是changeAreaValueSingleton(value)
    这样说,你可明白???
      

  2.   

    另外提醒一点,你的后台action代码不要做页面跳转,要return null;xmlHttp.responseText或者xmlHttp.responseXML是通过out.print()出来的
      

  3.   

    jsp 表单防止重复提交// 页面代码start 
    <% 
           Random random = new Random(); 
           //生成随机flag, 
           Integer   flag=new   Integer(random.nextInt()); 
           session.setAttribute("flag",flag);   
    %> //form代码 
    <input   type=hidden   name="flag"   value="<%=flag%>"> //页面代码end 
    //处理表单代码 start 
    Integer flag =new Integer(Integer.parseInt(request.getParameter("flag")));   
            HttpSession session=request.getSession();     
            if (flag.equals(session.getAttribute("flag"))){   
                //在此调用dao    
                   destroyFlag(session);   
           } else {   
                System.out.println("重复提交"); 
            }   /** 
         * 销毁flag 
         * @param session 
         */ 
        public void destroyFlag(HttpSession session) {   
            session.removeAttribute("flag"); 
        } 
      

  4.   

    对啊,重新返回这个页面,重新调值java