我想做基于ajax的添加记录,在网上找了验证用户名的代码,做了修改,如下:
<script>
//设一个变量
var XMLHttpReq=false;
//创建一个XMLHttpRequest对象
function createXMLHttpRequest(){
    if(window.XMLHttpRequest){ //Mozilla 
       XMLHttpReq=new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        try{
            XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
            try{
           XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
            }catch(e){}
        }
    }
}
//发送请求函数
function send(url){
    createXMLHttpRequest();
    XMLHttpReq.open("get",url,true);
    XMLHttpReq.onreadystatechange=proce;   //指定响应的函数
     XMLHttpReq.send(null);  //发送请求
}
function proce(){
    if(XMLHttpReq.readyState==4){ //对象状态
      if(XMLHttpReq.status==200){//信息已成功返回,开始处理信息    
         <!--测试读取xml开始-->
          var root=XMLHttpReq.responseXML;
          var res=root.getElementsByTagName("content")[0].firstChild.data;
          window.alert(res); 
       <!--测试读取xml结束-->   
             //var xmlReturn = XMLHttpReq.responseText;
           //window.alert(xmlReturn);
      }else{
           window.alert("所请求的页面有异常");
       }
    }
} //数据验证
function check(){ 
    var chapterOrder=document.getElementById("chapterOrder").value; 
    var bookSeq = <%=bookSeq %>;
    if(chapterOrder==""){ 
       alert("请输入章节序号!"); 
       return false; 
    } else{ 
       //send('login?name='+name); 
document.getElementById("load").style.display=''; 
send('<%=basePath%>bookChapter.do?   method=ajax&chapterOrder='+chapterOrder+'&bookSeq='+bookSeq); 
document.getElementById("load").style.display='none'; 
    } 
} </script> 在action中
                  try { 
request.setCharacterEncoding("gb2312"); 
} catch (UnsupportedEncodingException e) { 
e.printStackTrace(); 

try{ 
String msgStr=""; 
response.setContentType("text/xml;charset=GB2312"); 
response.setHeader("Cache-Control","no-cache"); 

//从页面中获得书评标题,内容,书籍的seq,用户的seq
String commentTitle = StringUtil.convertToUtf8(request.getParameter("commentTitle"));
String commentContent = StringUtil.convertToUtf8(request.getParameter("commentContent"));
String bookSeq = request.getParameter("bookSeq");

//得到当前时间
SimpleDateFormat dateformat=new SimpleDateFormat("yyyyMMddHHmmssssss");
String time = dateformat.format(new Date());
java.util.Date date = dateformat.parse(time);

//得到用户登录的seq
HttpSession session = request.getSession();
HngsUser user = (HngsUser)session.getAttribute("loginUser");
String hngsUserSeq = user.getHngsUserSeq();

//新建书评对象
BookComment bc = new BookComment();

//将获得的内容加入到书评对象
bc.setBookSeq(bookSeq);
bc.setCommentContent(commentContent);
bc.setCommentTitle(commentTitle);
bc.setCommentDate(date);
bc.setHngsUserSeq(hngsUserSeq);

/**
 * 增加书评对象到数据库
 * 成功返回true,失败返回false
 */
if(ServiceUtil.getBkcs().addBookComment(bc)) {
msgStr ="添加成功!"; 
}else{ 
msgStr ="添加失败!"; 

response.getWriter().println("<?xml version='1.0' encoding='GB2312' ?>"); 
response.getWriter().println("<root>"); 
response.getWriter().println("<content>"); 
response.getWriter().print(msgStr); 
response.getWriter().println("</content>"); 
response.getWriter().println("<test>"); 
response.getWriter().println("哈哈,我在测试呢!"); 
response.getWriter().println("</test>"); 
response.getWriter().println("</root>"); 
response.getWriter().close(); 
}catch(Exception ex){  } 
return null; 为什么提示添加成功后,跳往哈哈,我在测试呢这个页面?????怎么跳回原来页面????????????????谢谢了

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【LOVEYOULOVE】截止到2008-07-30 23:04:01的历史汇总数据(不包括此帖):
    发帖的总数量:27                       发帖的总分数:1530                     每贴平均分数:56                       
    回帖的总数量:77                       得分贴总数量:24                       回帖的得分率:31%                      
    结贴的总数量:27                       结贴的总分数:1530                     
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=LOVEYOULOVE
      

  2.   

    用Action的ActionForward试下吧
    ActionForward forward=null;
    forward=mapping.findForward("success");然后在struts_config相应的action中配置路径
    <action ....>
    <forward name="success" path="原来页面" /></action>
      
    我的经验是如果在javascript中或则form中拦截到错误就会自动朝原页跳,但是如果进入action就需要根据actionforward中配置的路径来跳转了
      

  3.   

    你用的是Ajax异步提交干什么还有页面跳转呢?不知道你想问什么问题?
      

  4.   

    我通常的做法是另外写一个success.jsp 然acrionForward朝这个页面跳,
    在回调函数中用xmlHttpRequest.responseText()接收到success.jsp的页面类容(例如:<p>添加成功</p>);
    var text=xmlHttpRequest.responseText();
    然后利用:
    innerHTML把text加入原页面
      

  5.   

    已经解决了,用了一个笨方法,添加成功之后返回原来页面,在
             <!--测试读取xml开始-->
                 var root=XMLHttpReq.responseXML;
                 var res=root.getElementsByTagName("content")[0].firstChild.data;
                 window.alert(res);下面加了个刷新页面