使用dwr我们可以动态请求一个页面内容到当前页:一下是代码:
1,后台方法:
public String getInclude() throws ServletException, IOException {
WebContext ctx = WebContextFactory.get();
System.out.println(ctx.getCurrentPage());
ctx.getHttpServletRequest().setAttribute("test", "hello ,test forward");
return ctx.forwardToString("/iclude.jsp");
}
2,dwr配置:
<create javascript="testinclude" creator="new">
<param name="class" value="com.dwr.TestInclude"/>
</create>
3,页面:
<html>
<head>
<base href="<%=basePath%>">
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/testinclude.js"></script>
<script type="text/javascript">
function getInClude(){
testinclude.getInclude(
function(data){
dwr.util.setValue("fq",data,{ escapeHtml:false });
}
);
}
</script>
</head>
<body>
<input type="button" value="include page"
onclick="javascript:getInClude()" />
<div id="fq">
</div>
</body>
</html>
2,其中使用了
WebContext ctx = WebContextFactory.get();
ctx.forwardToString("/iclude.jsp");
查看dwr源代码:
getServletContext().getRequestDispatcher(url).forward(realRequest, fakeResponse);
其中:fakeResponse
HttpServletResponse fakeResponse = new SwallowingHttpServletResponse(realResponse, sout, realResponse.getCharacterEncoding());
而SwallowingHttpServletResponse使用了WriterOutputStream
public SwallowingHttpServletResponse(HttpServletResponse response, Writer sout, String characterEncoding)
{
super(response);
pout = new PrintWriter(sout);
outputStream = new WriterOutputStream(sout, characterEncoding);
this.characterEncoding = characterEncoding;
}
WriterOutputStream:也就是对 ServletOutputStream的封装。
public final class WriterOutputStream extends ServletOutputStream
分享到:
相关推荐
DWR(Direct Web Remoting)则是一种JavaScript库,允许在浏览器和服务器之间进行实时的、异步的数据交换,增强了Web应用的用户体验。在这个场景中,“SSH + dwr 实现三级级联”指的是使用SSH框架与DWR技术结合,来...
OA办公自动化管理系统是一款基于Java技术栈的Web应用,利用了Struts1.2、Hibernate3.0、Spring2和DWR等开源框架。这个项目旨在提高企业内部的办公效率,实现工作流程自动化,减少人为错误,并提升信息共享的便捷性。...
这是一个基于Java技术栈的OA(Office Automation)办公自动化管理系统...通过学习和分析这个源码,开发者可以深入理解Java Web开发中的MVC模式、ORM机制、依赖注入以及异步通信等关键概念,对于提升专业技能大有裨益。
在Struts中,ActionServlet充当Controller的角色,通过struts-config.xml配置文件来管理应用程序中的ActionForm、Action、Forward等。 在实际应用中,Struts通过ActionForm接收用户输入,然后将请求分发给Action类...
虽然Struts1本身对AJAX支持有限,但可以通过第三方库如DWR或使用Struts2的AJAX插件实现部分页面的异步更新。 **快速学习步骤:** 1. 安装并配置Struts环境,包括Tomcat服务器和Struts库。 2. 创建基本的Struts项目...
- **DWR**:Direct Web Remoting,用于简化客户端与服务器端的交互。 #### 六、Flex - **Flex**:一种用于构建丰富互联网应用程序的技术,虽然现在不如从前流行,但仍然有一定的应用场景。 #### 七、WebService - ...
### Java框架技术学习笔记 #### 一、框架技术概述 在现代软件开发中,使用框架可以极大地提高开发效率,减少重复工作。对于Java Web开发来说,Struts、Hibernate、Spring和Ajax是四个非常重要的框架。 - **SSH...
### Java框架学习笔记 #### 第一章:框架技术概述 - **SSH框架组合**:SSH是Struts + Spring + Hibernate的简称,这三个框架在Java Web应用开发中非常常见,它们各自解决了不同的问题,并且能够很好地协同工作。 ...
2. **配置详解**:书中详细阐述了Struts的配置文件(struts-config.xml),包括ActionMapping、FormBeans、ActionForward、PlugIn等核心元素的配置方法,以及如何使用XML来组织应用程序的结构。 3. **动作(Actions...
Struts 1.2.9 是一个非常重要的Java Web开发框架,由Apache软件基金会开发并维护。这个版本的Struts是Struts 1...通过深入学习和理解Struts 1.2.9,开发者能够更好地理解MVC架构,以及如何在实际项目中应用这些概念。
这本书为初学者提供了全面而深入的学习路径,帮助他们理解和掌握如何使用Struts来构建高效、可维护的Java Web应用程序。 Struts是一个开源的MVC(Model-View-Controller)框架,它在Java社区中被广泛使用,用于开发...
学习Struts对于Java Web开发者来说是必不可少的,掌握Struts可以帮助你更好地理解和构建MVC架构的Web应用,提高开发效率。通过阅读《Struts教程.doc》,你可以深入理解上述知识点,并逐步成为一名熟练的Struts开发者...
Struts是Apache软件基金会 Jakarta项目下的一个开源框架,主要用于构建基于Java的企业级Web应用程序。它引入了MVC(Model-View-Controller...通过深入学习和实践,开发者可以熟练掌握Struts框架,提高Web应用开发效率。
每个Action对应一个业务逻辑,它接收请求参数,执行相应的操作,并通过ActionForward或Redirect来决定后续的页面跳转。在实际开发中,合理设计Action类和ActionForm(用于封装请求参数)对于提高代码可维护性和复用...
在Struts1中集成AJAX,可以借助第三方库如DWR(Direct Web Remoting)或者使用jQuery等JavaScript库发送Ajax请求。例如,使用jQuery的$.ajax()方法: ```javascript $.ajax({ url: 'loginCheck.action', // Struts...
当Web应用程序采用了Struts框架后,在Web应用启动时,Struts框架会初始化并加载配置文件`struts-config.xml`。这个配置文件定义了整个应用的结构,包括各个Action、Form Bean以及它们之间的映射关系。初始化完成后,...