1.近期公司使用extjs做ui界面,并用dwr远程访问javabean取得json数据。网上搜了一天,不能用.用一天的时间终于自学成才,回头看一下原来就这么简单,现将心得与大家分享,菜鸟级别,有问题请指正!
2.首先是index.jsp代码,表格的绘制用extjs实现。<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>extjs&dwr</title>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/ext-4.0.7/resources/css/ext-all.css" />
<script type="text/javascript" src="<%=request.getContextPath()%>/ext-4.0.7/bootstrap.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/ext-4.0.7/ext-all.js"></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/engine.js'></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/util.js'></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/DwrTable.js'></script>
<script type="text/javascript" src="js/index.js"></script>
</head>
<body>
</body>
</html>
3.DwrTable.java代码,只是返回一个json字符串package com.dwr.util;
public class DwrTable {
/**
* 返回json数组字符串
* @return String
* @throws Exception
*/
public String createTable() throws Exception {
String str = "[{id: 1,name: 'Ed Spencer',phoneNumber: '555 1234'},{id: 2,name: 'Abe Elias',phoneNumber: '666 1234'}]";
return str;
}
}
4.表格的绘制用extjs实现,下面是index.js代码,这是dwr和extjs结合的重点Ext.onReady(function(){
//调用dwr取得返回的json字符串
DwrTable.createTable(callBack);
//创建本地store
var store = Ext.create('Ext.data.Store', {
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'},
{name: 'phone', type: 'string', mapping: 'phoneNumber'}
],
proxy: {
type: 'memory',
reader: {
type: 'json'
}
}
});
//创建grid显示数据
Ext.create('Ext.grid.Panel', {
title: 'Date Column Demo',
store: store,//这里的store是上边定义的本地store
columns: [
{ text: 'id', dataIndex: 'id', flex: 1 },
{ text: 'name', dataIndex: 'name' },
{ text: 'phone', dataIndex: 'phone' }
],
height: 200,
width: 450,
renderTo: Ext.getBody()
});
//在callBack函数调用store.loadData()来载入store
function callBack(dat){
store.loadData(Ext.decode(dat));//Ext.decode(dat)将字符串转成json数组
};
});
5.dwr的配置在spring的配置文件application.xml中代码如下,这里可以通过网上搜一下在web.xml中配置<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.directwebremoting.org/schema/spring-dwr
http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"><bean id="dwrTable" class="com.dwr.util.DwrTable">
<dwr:remote javascript="DwrTable">
<dwr:include method="createTable"/>
</dwr:remote>
</bean></beans>
分享到:
相关推荐
3. **调用DWR服务**:在处理函数中,使用DWR的API(如`DWRUtil.setValue`和`DWREngine.invoke`)来获取用户输入的值,并向服务器发送登录请求。 4. **Java后端验证**:在服务器端,编写Java方法接收登录请求,对...
EXTJS通过DWR调用服务,获取或更新数据,显示在界面上。同时,Spring的事务管理确保了数据的一致性。 总结起来,"DWR+extjs+spring+hibernate"的组合是现代Web应用开发的一个强大工具集,它能够帮助开发者快速构建...
ExtJS Tree通过Ajax请求获取这些JSON数据,并根据数据构建或更新树结构。JSON的优势在于它的结构与JavaScript对象相似,可以直接在JavaScript中使用,减少了数据处理的复杂性。 3. **Struts2**: Struts2 是一个基于...
EXTJS 3 整合DWR (DWRProxy、DWRTreeLoader、DWRGridProxy) 是一个在EXTJS 3.0版本中实现的重要技术整合,它将DWR(Direct Web Remoting)的强大功能引入到EXTJS的前端框架中,以实现更高效的数据交互。EXTJS是一个...
DWR通过自动处理JSON或XML数据交换,简化了客户端和服务器之间的交互。 将EXTJS与DWR结合,可以创建出高度交互性和动态的Web应用。EXTJS负责前端的用户界面展示和交互,而DWR则负责提供后端服务,实现实时的数据...
- 最后,通过Spring MVC处理前端请求,调用业务逻辑层的方法,返回JSON数据给EXTJS展示。 项目中的"Project"文件可能包含了项目的源代码,包括各层的Java类、配置文件、以及Web相关的资源。而"Web"文件可能包含了...
4. **处理响应数据**:当Action执行完毕,Struts2会返回JSON数据到前端。Extjs的`JsonReader`会解析这个响应,将数据绑定到Grid、Tree或其他组件中。 例如,在给出的部分内容中,我们可以看到一个使用`Ext.data....
3. **ExtJS与DWR的整合**:整合这两者,开发者可以在ExtJS的组件上直接触发后台操作,例如通过DWR调用Java方法来获取或更新数据,然后实时更新UI。这种方式可以实现前后端的无刷新通信,提升应用性能。 4. **富...
5. **编写前端代码**: 使用Ajax调用DWR生成的JavaScript接口,处理返回的数据,更新DOM元素,实现页面动态更新。 ### 3. DWR安全性和优化 - **安全控制**: DWR提供了多种安全措施,如CSRF保护、白名单机制等,确保...
DWR则负责在后台处理业务逻辑和数据操作,通过JSON或其他格式的数据交换,实现与EXTJS前端的无缝对接。 EXTJS的组件体系非常完善,例如,GridPanel可以展示大量数据并支持排序、筛选和分页;FormPanel则用于创建...
4. **Spring MVC集成**:设计RESTful API接口,通过@RequestMapping注解处理HTTP请求,返回JSON数据供DWR解析。 5. **数据绑定**:利用ExtJS的数据模型(Model)、数据存储(Store)和视图(View)进行双向数据绑定...
- 调用DWR方法:在EXTJS的JavaScript代码中,通过DWR API调用服务器端的方法,获取或更新数据。 - 绑定数据到EXTJS组件:将从服务器获取的数据绑定到EXTJS的组件,如表格、树形结构等,实现数据的实时更新。 4. ...
- **数据交换格式**:除了XML,DWR也支持JSON等其他数据格式进行交换,以提高性能和兼容性。 5. **DWR的安全性与优化** - DWR提供了安全机制,如CSP(Content Security Policy)和白名单,以防止跨站脚本攻击。 ...
通过`DWRProxy`,EXT可以直接与DWR服务进行交互,获取数据或调用方法,无需编写复杂的Ajax代码,极大地简化了前后端的通信流程。 总之,`Ext.data`及其组件为开发者提供了强大的数据管理和通信能力,使得在Extjs...
通过EXTJS的组件展示数据,DWR负责异步通信,Spring处理后端逻辑,可以创建出高效、互动性强的Web应用。 总结来说,"An Introduction To Ajax"涉及的是使用EXTJS、DWR和Spring构建Ajax驱动的Web应用。这些技术的...