<script language="javascript" type="text/javascript">
window.setTimeout("refresh();",3000);
var req;
function refresh(){
var actionType=document.all.actionType.value;
var currentPageNo=document.all.currentPageNo.value;
var url="channelList.do?actionType="+actionType+"¤tPageNo="+currentPageNo;
if(window.XMLHttpRequest){
req=new XMLHttpRequest();
req.onreadystatechange = callback;
try {
req.open("POST", url, true);
} catch (e) {
}
req.send(null);
}else if(window.ActiveXObject){
req=new ActiveXObject("MIcrosoft.XMLHttp");
if (req) {
req.onreadystatechange = callback;
req.open("POST", url, true);
req.send();
}
}
window.setTimeout("refresh();",3000);
}
function callback(){
if(req.readyState==4){
if(req.status==200){
parseMessage();
}
else{
//alert("not able to retrive decription:"+req.statusText);
}
}
}
function parseMessage(){
var htmlStr="<table width=\"950\" align=\"center\" class=\"table_c\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
htmlStr=htmlStr+"<tr class=\"h_tr\">";
htmlStr=htmlStr+"<td class=\"border_all\"> </td>";
htmlStr=htmlStr+"</tr>";
<%
List channels=(List)request.getAttribute("searchResult");
if(channels.size()>0){
Iterator it=channels.iterator();
while(it.hasNext()){
ResChannel channel=(ResChannel)it.next();
String htmlTemp="<tr>";
htmlTemp=htmlTemp+"<td class=\\\"border_lbr\\\"><input type=\\\"checkbox\\\" name=\\\"selectItems\\\" value=\\\""+channel.getChannel()+"\\\"/></td>";
htmlTemp=htmlTemp+"</tr>";
%>
htmlStr=htmlStr+"<%=htmlTemp%>";
//alert(htmlStr);
<%
}
}
%>
htmlStr=htmlStr+"</table>";
document.all.contents.innerHTML=htmlStr;
}
</script>上面的刷新处理中,channels的值都正常的,但生成的htmlStr串却不会更新,请问这个是怎么回事?
window.setTimeout("refresh();",3000);
var req;
function refresh(){
var actionType=document.all.actionType.value;
var currentPageNo=document.all.currentPageNo.value;
var url="channelList.do?actionType="+actionType+"¤tPageNo="+currentPageNo;
if(window.XMLHttpRequest){
req=new XMLHttpRequest();
req.onreadystatechange = callback;
try {
req.open("POST", url, true);
} catch (e) {
}
req.send(null);
}else if(window.ActiveXObject){
req=new ActiveXObject("MIcrosoft.XMLHttp");
if (req) {
req.onreadystatechange = callback;
req.open("POST", url, true);
req.send();
}
}
window.setTimeout("refresh();",3000);
}
function callback(){
if(req.readyState==4){
if(req.status==200){
parseMessage();
}
else{
//alert("not able to retrive decription:"+req.statusText);
}
}
}
function parseMessage(){
var htmlStr="<table width=\"950\" align=\"center\" class=\"table_c\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
htmlStr=htmlStr+"<tr class=\"h_tr\">";
htmlStr=htmlStr+"<td class=\"border_all\"> </td>";
htmlStr=htmlStr+"</tr>";
<%
List channels=(List)request.getAttribute("searchResult");
if(channels.size()>0){
Iterator it=channels.iterator();
while(it.hasNext()){
ResChannel channel=(ResChannel)it.next();
String htmlTemp="<tr>";
htmlTemp=htmlTemp+"<td class=\\\"border_lbr\\\"><input type=\\\"checkbox\\\" name=\\\"selectItems\\\" value=\\\""+channel.getChannel()+"\\\"/></td>";
htmlTemp=htmlTemp+"</tr>";
%>
htmlStr=htmlStr+"<%=htmlTemp%>";
//alert(htmlStr);
<%
}
}
%>
htmlStr=htmlStr+"</table>";
document.all.contents.innerHTML=htmlStr;
}
</script>上面的刷新处理中,channels的值都正常的,但生成的htmlStr串却不会更新,请问这个是怎么回事?
解决方案 »
- jspSmartUpload实现图片上传的时候,表单里面除了图片以外别的值为什么得不到?
- 新手!!一个错误请各位帮忙看下!!非常感谢
- 请问怎么让Application程序在开机后自动运行?
- 大家看看这个问题怎么解决!!
- 谁有JSP的那个MVC架构开发教学视频啊!!初学~~~~
- 关于xfire客户端调用时异常
- freemarker 怎么遍历对象数组
- mysql中datetime和varchar 区别?
- 怎样在插入一条记录之后,快速定位到该条记录,非常急!!!在线等待,解决就给分!
- 问一下大家,MyBatis是做什么用的 现在的主流框架是不是还是SSH呢
- 急求....关于validator的问题....
- JavaScript
取消页面缓存试试:
在jsp页面中加入
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0"> 在servlet中
response.setHeader("Cache-Control","no-cache");
response.set Header("Pragma","no-cache");
response.setDateHeader("Expires", 0);
我快被这个问题折腾死了.<%@page language="java" pageEncoding="GBK"%>
<%@ page import="********不方便写明*******"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html>
<head>
<title>Channel列表</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="css/style.css" />
<SCRIPT language=JavaScript src="js/common.js"></SCRIPT>
</head>
<script language="javascript" type="text/javascript">
//window.setTimeout("refresh();",3000);
var req;
function refresh(){
var actionType=document.all.actionType.value;
var currentPageNo=document.all.currentPageNo.value;
var curTime=(new Date()).getTime();
//alert(curTime);
var url="channelList.do?actionType="+actionType+"¤tPageNo="+currentPageNo+"&curTime="+curTime;
//alert(url);
if(window.XMLHttpRequest){
req=new XMLHttpRequest();
req.onreadystatechange = callback;
try {
req.open("GET", url, true);
} catch (e) {
//alert(e);
}
req.send(null);
}else if(window.ActiveXObject){
req=new ActiveXObject("MIcrosoft.XMLHttp");
if (req) {
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send();
}
}
window.setTimeout("refresh();",3000);
}
function callback(){
if(req.readyState==4){
if(req.status==200){
parseMessage();
}
else{
}
}
}
function parseMessage(){
var htmlStr="<table width=\"950\" align=\"center\" class=\"table_c\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
htmlStr=htmlStr+"<tr class=\"h_tr\">";
htmlStr=htmlStr+"<td class=\"border_all\"> </td>";
htmlStr=htmlStr+"<td class=\"border_trb\">Channel</td>";
htmlStr=htmlStr+"</tr>";
var eDIV="";
<%
List channels=(List)request.getAttribute("searchResult");
int i=0;
if(channels.size()>0){
Iterator it=channels.iterator();
while(it.hasNext()){
ResChannel channel=(ResChannel)it.next();
String htmlTemp="<tr>";
htmlTemp=htmlTemp+"<td class=\\\"border_lbr\\\"><input type=\\\"checkbox\\\" name=\\\"selectItems\\\" value=\\\""+channel.getChannel()+"\\\"/></td>";
htmlTemp=htmlTemp+"<td class=\\\"border_rb\\\"><a href=\\\"channelList.do?channel="+channel.getChannel()+"&actionType=view\\\">"+channel.getChannel()+"</a></td>";
htmlTemp=htmlTemp+"</tr>";
%>
eDIV = document.createElement("div");
eDIV.setAttribute("id","myDiv<%=i%>");
// add the text to the div with createTextNode
eDIV.appendChild(document.createTextNode("<%=channel.getChannel()%>"));
//htmlStr=htmlStr+"<tr>";
//htmlStr=htmlStr+"<td class=\"border_lbr\"><input type=\"checkbox\" name=\"selectItems\" value=\"<%=channel.getChannel()%>\"/></td>";
//htmlStr=htmlStr+"<td class=\"border_rb\"><a href=\"channelList.do?channel=<%=channel.getChannel()%>&actionType=view\"><%=channel.getChannel()%></a></td>";
//htmlStr=htmlStr+"</tr>";
htmlStr=htmlStr+"<%=htmlTemp%>";
//alert(htmlStr);
<%
}
}
%>
if(eDIV!="")
document.all.mContainer.appendChild(eDIV);
//document.getElementById("mContainer").appendChild(eDIV);
htmlStr=htmlStr+"</table>";
document.all.contents.innerHTML=htmlStr;
//alert(document.all.contents.innerHTML);
}
</script>
<body onLoad="refresh();">
<%@ include file="menu.jsp"%><!--导航菜单-->
<div id="content">
<div id="content_title">Channel列表</div>
<div id="handle" align="left"><html:button value="释放选中的资源" property="" onclick="submitForm('free')"/></div>
<div id="totalRecords"></div>
<div id="list"></div>
<div id="content_list">
<html:form method="post" action="channelList">
<html:hidden property="actionType" value="list"/>
<div id="mContainer"></div>
<div id="contents">
<table width="950" align="center" class="table_c" border="0" cellspacing="0" cellpadding="0">
<tr class="h_tr">
<td class="border_all"> </td>
<td class="border_trb">Channel</td>
</tr>
<logic:iterate id="result" name="searchResult" type="ResChannel" scope="request">
<tr>
<td class="border_lbr"><html:multibox property="selectItems" value="<%=result.getChannel()%>"/></td>
<td class="border_rb"><a href="channelList.do?channel=<%=result.getChannel()%>&actionType=view"><%=result.getChannel()%></a></td>
</tr>
</logic:iterate>
</table>
</div>
<div id="pager" align="center"><%@include file="pager.jsp" %><!--分页--></div>
</html:form>
</div>
<div id="content_bottom">..</div>
</div>
</body>
</html:html>
可能是你的request的值得没有变,因为当你一次request的时候,返回response,但是你是用ajax提交请求,所以可能你的request的值没有变,请求的作用域不同。 你把要返回的结果组装成xml后返回回来,用js解析xml再组装htmlStr然后innerHTML进去。
你打印看看。可能不是吧
var htmlStr=" <table width=\"950\" align=\"center\" class=\"table_c\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> ";
htmlStr=htmlStr+" <tr class=\"h_tr\"> ";
htmlStr=htmlStr+" <td class=\"border_all\"> </td> ";
htmlStr=htmlStr+" </tr> ";
<%
List channels=(List)request.getAttribute("searchResult");
if(channels.size()> 0){
Iterator it=channels.iterator();
while(it.hasNext()){
ResChannel channel=(ResChannel)it.next();
String htmlTemp=" <tr> ";
htmlTemp=htmlTemp+" <td class=\\\"border_lbr\\\"> <input type=\\\"checkbox\\\" name=\\\"selectItems\\\" value=\\\""+channel.getChannel()+"\\\"/> </td> ";
htmlTemp=htmlTemp+" </tr> ";
%>
htmlStr=htmlStr+" <%=htmlTemp%> ";
//alert(htmlStr);
完全错了
ajax不是这样用的,在去看看书