`
isiqi
  • 浏览: 16702696 次
  • 性别: 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=
分享到:
评论

相关推荐

    webwork+spring+hibernate整合开发网络书城 第二讲

    例如,Spring将管理WebWork的Action实例,同时为Hibernate提供DataSource和SessionFactory。我们还将学习如何通过Spring的HibernateTransactionManager来实现事务的统一管理。 本课程还将涵盖以下关键知识点: 1. ...

    struts2+hibernate+freemarker项目实例

    项目实例中的"jspro"可能是项目源代码的一部分,可能包含了JavaScript文件,这些文件可能用于前端交互,增强用户体验,或者与后台通过AJAX进行数据通信。 整合这三个框架,开发者可以快速地构建出高效、可维护的Web...

    四个struts1(2)+spring+ibatis+jquery整合实例

    这个整合实例旨在展示如何将这四个技术有效地结合在一起,创建一个高效、可维护的Web应用程序。 首先,让我们逐一了解这些技术的核心功能: 1. **Struts1(2)**:Struts是一个基于MVC(Model-View-Controller)...

    WebWork.Spring.Hibernate整合开发网络书城

    项目的整合过程中,通常会将WebWork的Action与Spring的Bean结合,让Spring来创建和管理Action实例。同时,Spring会配置Hibernate的数据源和SessionFactory,以便在Action中通过SessionFactory获取Session,进而执行...

    SSH2 整合简单增删改查实例,仅供学习使用

    总结来说,这个SSH2整合的简单增删改查实例,旨在帮助初学者理解如何将Spring、Struts2和Hibernate协同工作,以及如何利用Gson和Ajax实现前后端的数据交互。通过对这些技术的实践,开发者能够更好地掌握Java Web开发...

    maven+struts2+spring+mysql+easyui框架整合

    Struts2与Spring的整合,可以通过Spring插件实现,使得Action实例由Spring容器管理,从而实现依赖注入。 MyBatis是一个轻量级的持久层框架,它简化了SQL操作,通过XML或注解配置,将SQL语句与Java代码分离,提供了...

    struts2.0与dwr开发实例

    Struts2.0和DWR(Direct Web Remoting)是两...通过这些源码,你可以了解到如何在实际项目中整合Struts2.0和DWR,实现高效的AJAX表单验证。这种技术在现代Web应用中非常常见,能够提供流畅的用户体验,提高用户满意度。

    dwr中文手册

    总之,DWR作为一款优秀的Ajax框架,不仅简化了Ajax编程的复杂度,还提供了与多种Java EE框架无缝整合的能力,使得开发出高性能、高互动性的Web应用变得更加容易。对于希望在Web开发中充分利用Ajax技术的开发者而言,...

    Struts2.1权威指南——基于WebWork核心的MVC开发.pdf

    - **第14章至第19章整合其他框架**:分别讲述了Struts2与其他流行框架(如Spring、JSF、SiteMesh、JasperReports、JFreeChart、Hibernate)的整合方法,扩展了Struts2的功能范围。 - **第20章至第21章案例分析**:...

    Dwr2.0中文手册.pdf

    综上所述,DWR2.0不仅提供了强大的Ajax功能,还通过详细的API文档和广泛的框架整合能力,为开发者构建高性能、安全、易维护的Web应用提供了有力支持。无论是初学者还是有经验的开发人员,都能从DWR中受益,提升项目...

    最新Java电子书.pdf

    J2EE 企业应用实战 : 整合开发"、"C#.NET编程 -NHibernate资料整合"、"J2EE性能测试"、"More.Java.Pitfalls中文版"、"J2EE1.4 编程指南"、"J2EE应用与BEA.WebLogic.Server第2版"、"循序渐进 Java 2 教程"、"Webwork ...

    SSH mybatis springmvc lucene Jquery oracle等笔记总结.docx

    Struts2是基于Apache软件基金会的WebWork和Struts1发展起来的MVC框架。其主要特点是: 1. **配置**:Struts2的核心配置文件是`web.xml`中的`StrutsPrepareAndExecuteFilter`,它处理所有请求。另外,`struts.xml`...

    DWR中文文档.pdf

    - **DWR与Weblogic/WebWork/Hibernate/Acegi整合**: 分别介绍了这些框架下如何配置DWR以实现更好的集成效果。 #### 六、web.xml配置详解 - **主要配置**: - `&lt;servlet&gt;`: 定义DWR Servlet。 - `...

    ssh框架面试题

    - Bean实例的生命周期是指Spring容器创建和销毁Bean实例的过程,涉及初始化方法、依赖注入、初始化完成、销毁等关键步骤。 - Spring的MVC是Spring框架中用于Web层的组件,它以MVC设计模式为基础,将Web层的控制逻辑...

    DWR2.0中文文档

    **DWR与WebWork**:通过配置`dwr.xml`和在JSP中导入脚本,可以与WebWork框架进行整合。 **DWR与Acegi**:Acegi是一个Spring的安全框架,通过一定的配置可以与DWR集成,实现更强大的安全控制。 通过以上介绍,我们...

Global site tag (gtag.js) - Google Analytics