我想做基于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; 为什么提示添加成功后,跳往哈哈,我在测试呢这个页面?????怎么跳回原来页面????????????????谢谢了
<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; 为什么提示添加成功后,跳往哈哈,我在测试呢这个页面?????怎么跳回原来页面????????????????谢谢了
楼主【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
ActionForward forward=null;
forward=mapping.findForward("success");然后在struts_config相应的action中配置路径
<action ....>
<forward name="success" path="原来页面" /></action>
我的经验是如果在javascript中或则form中拦截到错误就会自动朝原页跳,但是如果进入action就需要根据actionforward中配置的路径来跳转了
在回调函数中用xmlHttpRequest.responseText()接收到success.jsp的页面类容(例如:<p>添加成功</p>);
var text=xmlHttpRequest.responseText();
然后利用:
innerHTML把text加入原页面
<!--测试读取xml开始-->
var root=XMLHttpReq.responseXML;
var res=root.getElementsByTagName("content")[0].firstChild.data;
window.alert(res);下面加了个刷新页面