`
isiqi
  • 浏览: 16045112 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

webwork + ajax 整合实例

阅读更多
首先, 配置好webwork环境.
在webwork中应用ajax技术,只要在webwork的返回值上加以区别就可以把 动态取得的值,返回给前台浏览器.
在这个实例中,我们有一个html页面,一个java文件,然后再配置文件中写上相关映射就OK了.
代码如下:
dynamicUpdate.html
DynamicUpdate.java
xwork.xml
在此配文件需要注意你的包名,我的包名是helloWorld;
<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPExworkPUBLIC"-//OpenSymphonyGroup//XWork1.0//EN""X:WorkSpaceBFPPropertyconfigwebxwork-1.0.dtd">

<xwork>

<includefile="webwork-default.xml"/>

<packagename="helloWorld"extends="webwork-default">
<interceptors>
<interceptorname="params"class="com.opensymphony.xwork.interceptor.ParametersInterceptor"/>
</interceptors>

<default-interceptor-refname="defaultStack"/>

<actionname="dynamicUpdate"class="control.DynamicUpdate">
<resultname="success">/jsp/domainS.jsp</result>
<interceptor-refname="model-driven"/>
<interceptor-refname="params"/>
</action>
</package>

</xwork>


OK,如果你是copy 的代码,在配置文件正确的情况下,应该可以运行了. 看看结果吧. 一定要注意配置文件和浏览器版本.在IE5以下的版本是不支持ajax的.

http://blog.csdn.net/sunyadongwanghbjm/archive/2007/09/25/1799725.aspx

packagecontrol;

importjava.io.PrintWriter;
importjava.math.*;
importjavax.servlet.http.HttpServletResponse;

importcom.opensymphony.webwork.ServletActionContext;

importcore.BookActionSupport;

publicclassDynamicUpdateextendsBookActionSupport...{
privateintcounter=1;
privatedoublerandom;
publicStringexecute()...{
Stringres
="";
Stringtask
=getParameter("task");
Stringmessage
="";
random
=Math.floor(Math.random()*100);
while(random>7)...{
random
=Math.sin(random)*10;
random
=Math.abs(Math.floor(random));
System.out.println(random);
}

counter
=(int)random;
if(task.equals("reset"))...{
counter
=1;
}
else...{
switch(counter)...{
case1:message="Stevewalksonstage";break;
case2:message="iPodsrock";break;
case3:message="StevesaysMacsrule";break;
case4:message="Changeiscoming";break;
case5:message="Yes,OSXrunsonIntel-hasforyears";break;
case6:message="MacswillsoonhaveIntelchips";break;
case7:message="done";break;
}

}

res
="<message>"+message+"</message>";
try...{
HttpServletResponseresponse
=ServletActionContext.getResponse();
PrintWriterout
=response.getWriter();
response.setContentType(
"text/html");
response.setHeader(
"Cache-Control","no-cache");
out.write(res);
out.close();

}
catch(Exceptione)...{
System.out.println(e.getMessage());
}



return"";
}

}

<html>
<head>
<title>updateofajax</title>
<scripttype="text/javascript">...
varxmlHttp;
vardom;
functioncreateXMLHttpRequest()...{
if(window.ActiveXObject)...{
xmlHttp
=newActiveXObject("Microsoft.XMLHTTP");
}
else...{
xmlHttp
=newXMLHttpRequest();
}

}


functiondoStart()...{
createXMLHttpRequest();
varurl="dynamicUpdate.action?task=reset";
xmlHttp.open(
"GET",url,true);
xmlHttp.onreadystatechange
=startCallback;
xmlHttp.send(
null);
}


functionstartCallback()...{
if(xmlHttp.readyState==4)...{
if(xmlHttp.status==200)...{
setTimeout(
"pollServer()",5000);
refreshTime();
}

}

}


functionpollServer()...{
createXMLHttpRequest();
varurl="dynamicUpdate.action?task=foo";
xmlHttp.open(
"GET",url,true);
xmlHttp.onreadystatechange
=pollCallback;
xmlHttp.send(
null);
}


functionrefreshTime()...{
vartime_span=document.getElementById("time");
vartime_val=time_span.innerHTML;
varint_val=parseInt(time_val);
varnew_int_val=int_val-1;

if(new_int_val>-1)...{
setTimeout(
"refreshTime()",5000);
time_span.innerHTML
=new_int_val;
}
else...{
time_span.innerHTML
=5;
}

}


functionpollCallback()...{
if(xmlHttp.readyState==4)...{
if(xmlHttp.status==200)...{
//alert(xmlHttp.responseText)
//alert(xmlHttp.responseXML.childNodes.length)
//alert(xmlHttp.responseXML.getElementsByTagName("message")[0]);
createXMLParser(xmlHttp.responseText);
varmessage=dom.getElementsByTagName("message")[0].firstChild.data;

if(message!="done")...{
varnew_row=createRow(message);
vartable=document.getElementById("dynamicUpdateArea");
vartable_body=table.getElementsByTagName("tbody").item(0);
varfirst_row=table_body.getElementsByTagName("tr").item(1);
table_body.insertBefore(new_row,first_row);
setTimeout(
"pollServer()",5000);
}

}

}

}


functioncreateRow(message)...{
varrow=document.createElement("tr");
varcell=document.createElement("td");
varcell_data=
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics