- 浏览: 372187 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (148)
- java (89)
- flex (7)
- sns (3)
- jquery mobile gwt html5 (1)
- VirtualBox Centos 安装 (2)
- tomcat (1)
- nginx (2)
- centOS (7)
- memcache (2)
- hadoop (3)
- hbase (3)
- install (1)
- cloudera (3)
- tools (0)
- gen code (0)
- Mysql (2)
- KinderEditor (1)
- flash chart (1)
- ntsysv (1)
- hibernate search (2)
- compass (1)
- lucence (2)
- hibernate (1)
- jboss cache (0)
- 二级缓存 (1)
- maven (1)
- debian (1)
- go (1)
- golang (2)
- html5 (1)
最新评论
-
llh1985:
wave牛人~~求联系~~~邮箱llh1985@163.com ...
GWT Wave 开源代码运行跑通分析(1) -
zhengliming123:
[img][img][*][*][/flash][*]|[/i ...
hibernate Search 学习研究 附件是maven工程 -
di1984HIT:
写得很嗯好啊。
CentOS 安装 hadoop hbase 使用 cloudera 版本。(一) -
itfanr:
楼主写的真好 本地godoc
Golang 1.0 文档使用。godoc ,go 命令 学习 ,本地运行 gotour -
phe441:
灰常感谢楼主,爱死你了
URL rewrite 3.2 jar 和 文档 pdf 下载
flex + spring + BlazeDS + google App JDO 实现一个CRUD.
分页在上一个 博客讲了
如何做一个分页.现在要在这个分页上面在做一个CURUD.
列表页面
form页面.表单.
删除页面,可以删除单个和多个.
查询页面.支持分页查询.
最重要的是分页列表里面.删除一个后.要刷新数据.
调用.outerDocument.removeOne([data.id.toString()]);
用 flex 做的ajax 效果不错. 代码写的也很少.很方便的维护.
SystemUserList.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#EEEEEE" width="100%" fontSize="12" initialize="initApp();" height="100%" xmlns:common="common.page.*"> <mx:RemoteObject id="systemUserService" destination="systemUserService"> <mx:method name="remove" result="removeHandler(event)"/> <mx:method name="list" result="listHandler(event)"/> <mx:method name="listSize" result="listSizeHandler(event)"/> </mx:RemoteObject> <mx:Script> <![CDATA[ import systemUser.model.SystemUser; import mx.events.CloseEvent; import common.event.DataGridDeleteEvent; import common.event.DataGridEditEvent; import common.event.DataGridCheckBoxEvent; import mx.collections.ArrayCollection; import mx.events.ItemClickEvent; import mx.rpc.events.ResultEvent; import common.page.PageConf; import mx.controls.Alert; import mx.managers.PopUpManager; //列表显示数据. [Bindable] private var listData:ArrayCollection; private var myPageConf:PageConf; //初始化函数. private function initApp():void{ //定义一个默认加载类. myPageConf = new PageConf(0,15,0); //第一次默认查询数据. systemUserService.listSize(getCommonPage()); //给通用分页Bar绑定事件. commonPageBar.pageLikBar.addEventListener(ItemClickEvent.ITEM_CLICK, function(event:ItemClickEvent):void{//匿名函数. myPageConf.pageItemClick(event, commonPageBar.pageInfo); systemUserService.listSize(getCommonPage()); }); } //通用查询,返回Map参数. private function getCommonPage():Object{ var objMap:Object = new Object(); if(loginName_search.text != ""){objMap["loginName,=="] = loginName_search.text;} if(passwd_search.text != ""){objMap["passwd,=="] = passwd_search.text;} if(name_search.text != ""){objMap["name,=="] = name_search.text;} if(phone_search.text != ""){objMap["phone,=="] = phone_search.text;} if(email_search.text != ""){objMap["email,=="] = email_search.text;} return objMap; } //新建Form弹出窗口. public function addForm(id:String):void { var addForm:SystemUserForm = new SystemUserForm(); if(id != null){ addForm.formId = id;//将id赋值,查询交给form. } //添加保存事件响应,保存后刷新数据. addForm.addEventListener("saveSystemUser", function(event:Event):void{//匿名函数. systemUserService.listSize(getCommonPage()); }); PopUpManager.addPopUp(addForm, this, true); PopUpManager.centerPopUp(addForm); } //删除单个记录. public function removeOne(ids:Array):void { Alert.show("是否确认删除?", "提示", 3, this, function(event:CloseEvent):void{//匿名函数. if (event.detail == Alert.YES){ systemUserService.remove(ids); } }); } //删除多个记录. public function removeAll():void { Alert.show("是否确认删除?", "提示", 3, this, function(event:CloseEvent):void{//匿名函数. if (event.detail == Alert.YES){ var ids:Array = new Array(); for each(var data:Object in dataGrid.selectedItems){ ids.push(data.id); } if(ids.length == 0){ Alert.show("请选择数据,按住shift或ctrl进行选择.","提示"); }else{ systemUserService.remove(ids); } } }); } /*****下面是回调函数.*****/ //查询总数.回调函数. private function listSizeHandler(event:ResultEvent):void { var pageSize:Number = event.result as Number; myPageConf.total = pageSize; systemUserService.list(myPageConf.getStart(), myPageConf.getEnd(),getCommonPage()); //查询出总记录数时.显示信息. myPageConf.showPageInfo(commonPageBar.pageInfo); } //查询数据.回调函数. private function listHandler(event:ResultEvent):void { listData = event.result as ArrayCollection; } //删除方法.回调函数. public function removeHandler(event:ResultEvent):void { if(event.result.toString() == "true"){ Alert.show("删除成功!","提示"); systemUserService.listSize(getCommonPage()); }else{ Alert.show("删除失败!","提示"); } } ]]> </mx:Script> <!--//列表开始.--> <mx:VBox> <mx:HBox width="100%"> <mx:Label text="登录名"/><mx:TextInput id="loginName_search" width="80"/> <mx:Label text="密码"/><mx:TextInput id="passwd_search" width="80"/> <mx:Label text="姓名"/><mx:TextInput id="name_search" width="80"/> <mx:Label text="电话"/><mx:TextInput id="phone_search" width="80"/> <mx:Label text="email"/><mx:TextInput id="email_search" width="80"/> <mx:Button label="查询" click="systemUserService.listSize(getCommonPage());"/> </mx:HBox> <mx:DataGrid width="100%" height="420" id="dataGrid" allowMultipleSelection="true" editable="false" dataProvider="{listData}"> <mx:columns> <mx:DataGridColumn headerText="登录名" dataField="loginName"/> <mx:DataGridColumn headerText="密码" dataField="passwd"/> <mx:DataGridColumn headerText="姓名" dataField="name"/> <mx:DataGridColumn headerText="电话" dataField="phone"/> <mx:DataGridColumn headerText="email" dataField="email"/> <mx:DataGridColumn width="85"><mx:itemRenderer><mx:Component> <mx:HBox width="100%" height="100%"> <mx:LinkBar height="22" itemClick="itemClick(event);"> <mx:dataProvider><mx:Array> <mx:String>修改</mx:String> <mx:String>删除</mx:String> </mx:Array></mx:dataProvider> </mx:LinkBar> <mx:Script> <![CDATA[ import mx.events.CloseEvent; import mx.controls.Alert; import mx.events.ItemClickEvent; private function itemClick(itemClick:ItemClickEvent):void{ if(itemClick.index == 0){ outerDocument.addForm(data.id.toString()); }else if(itemClick.index == 1){//删除单个数据. outerDocument.removeOne([data.id.toString()]); } } ]]> </mx:Script> </mx:HBox> </mx:Component></mx:itemRenderer></mx:DataGridColumn> </mx:columns> </mx:DataGrid> <mx:HBox width="100%"> <mx:Button label="新增" click="addForm(null);"/> <mx:Button label="删除" click="removeAll();"/> <mx:Spacer width="100"/> <common:PageBar id="commonPageBar"/> </mx:HBox> </mx:VBox> </mx:Module>
SystemUserForm.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" title="SystemUser表单" initialize="initApp();" backgroundColor="#EEEEEE" showCloseButton="true" close="PopUpManager.removePopUp(this);" borderColor="#869CA7" fontSize="12"> <mx:Style> .errorTip{fontSize: 12;} </mx:Style> <mx:RemoteObject id="systemUserService" destination="systemUserService"> <mx:method name="findById" result="findByIdHandler(event)"/> <mx:method name="save" result="saveHandler(event)"/> </mx:RemoteObject> <mx:Script> <![CDATA[ import mx.validators.Validator; import mx.controls.Alert; import systemUser.model.SystemUser; import mx.rpc.events.ResultEvent; import mx.managers.PopUpManager; public var isValid:Boolean = false;// public var formId:String = null;//保存ID主键. //初始化函数. private function initApp():void{ if(formId != null){//如果formId存在,查询. systemUserService.findById(formId); } } //查询响应处理. private function findByIdHandler(event:ResultEvent):void { var mySystemUser:SystemUser = event.result as SystemUser; setFormData(mySystemUser); } //保存函数. private function save():void { var myValid:Array = Validator.validateAll([//校验表单. loginName_valid, passwd_valid, name_valid, phone_valid, email_valid, createDate_valid, islock_valid, loginTimes_valid, lastLogin_valid ]); if(myValid.length == 0){ var mySystemUser:SystemUser = new SystemUser(); mySystemUser.loginName = loginName_id.text; mySystemUser.passwd = passwd_id.text; mySystemUser.name = name_id.text; mySystemUser.phone = phone_id.text; mySystemUser.email = email_id.text; mySystemUser.createDate = createDate_id.text; mySystemUser.islock = islock_id.text; mySystemUser.loginTimes = loginTimes_id.text; mySystemUser.lastLogin = lastLogin_id.text; if(formId != null){//如果formId不为null.将值保存. mySystemUser.id = formId; } systemUserService.save(mySystemUser); } } //保存后,关闭. private function saveHandler(event:ResultEvent):void { dispatchEvent(new Event("saveSystemUser")); PopUpManager.removePopUp(this); } //当编辑的时候,设置form. public function setFormData(mySystemUser:SystemUser):void { loginName_id.text = mySystemUser.loginName; passwd_id.text = mySystemUser.passwd; name_id.text = mySystemUser.name; phone_id.text = mySystemUser.phone; email_id.text = mySystemUser.email; createDate_id.text = mySystemUser.createDate; islock_id.text = mySystemUser.islock; loginTimes_id.text = mySystemUser.loginTimes; lastLogin_id.text = mySystemUser.lastLogin; } ]]> </mx:Script> <!--//校验开始.--> <mx:StringValidator id="loginName_valid" source="{loginName_id}" property="text"/> <mx:StringValidator id="passwd_valid" source="{passwd_id}" property="text"/> <mx:StringValidator id="name_valid" source="{name_id}" property="text"/> <mx:StringValidator id="phone_valid" source="{phone_id}" property="text"/> <mx:StringValidator id="email_valid" source="{email_id}" property="text"/> <mx:StringValidator id="createDate_valid" source="{createDate_id}" property="text"/> <mx:StringValidator id="islock_valid" source="{islock_id}" property="text"/> <mx:StringValidator id="loginTimes_valid" source="{loginTimes_id}" property="text"/> <mx:StringValidator id="lastLogin_valid" source="{lastLogin_id}" property="text"/> <!--//表单开始.--> <mx:Form id="creditCardForm"> <mx:FormItem label="登录名"><mx:TextInput id="loginName_id"/></mx:FormItem> <mx:FormItem label="密码"><mx:TextInput id="passwd_id"/></mx:FormItem> <mx:FormItem label="姓名"><mx:TextInput id="name_id"/></mx:FormItem> <mx:FormItem label="电话"><mx:TextInput id="phone_id"/></mx:FormItem> <mx:FormItem label="email"><mx:TextInput id="email_id"/></mx:FormItem> <mx:FormItem label="创建时间"><mx:TextInput id="createDate_id"/></mx:FormItem> <mx:FormItem label="是否锁定"><mx:TextInput id="islock_id"/></mx:FormItem> <mx:FormItem label="登录次数"><mx:TextInput id="loginTimes_id"/></mx:FormItem> <mx:FormItem label="上次登录时间"><mx:TextInput id="lastLogin_id"/></mx:FormItem> <mx:FormItem><mx:HBox> <mx:Button click="save();" label="保存"/> <mx:Button click="PopUpManager.removePopUp(this);" label="关闭"/> </mx:HBox></mx:FormItem> </mx:Form> </mx:TitleWindow>
附件是全部代码.
功能上面.排序还是没有实现服务端排序.还就是Grid 默认的客户端排序.
其他CRUD 的基本功能都完成了.
部署到服务器上面地址
可以用这个做点小东西了.
下面研究下.拖拽.
发表评论
-
使用 flex4 开发通用统计系统,发布源代码至github
2014-09-08 18:53 26871,关于flex4 很老的技术,我居然还再研究使用这个东 ... -
认真做 flex + spring + blazeDS + google app JDO 分页.每次查询总数.
2010-04-17 20:41 2686认真做 flex + spring + blazeDS + g ... -
flex 和 flexlib类库 实现 菜单和 TabNavigator (二)
2010-04-15 21:35 1457解决 菜单重复打开问题.. 按照以前的 思路自己保存一 ... -
flex 和 flexlib类库 实现 菜单和 TabNavigator
2010-04-15 10:20 6030看到 extjs 的 TabNavigator和漂亮. 很实用 ... -
flex 和java 一起开发.实验远程调用.
2010-04-11 16:10 1945首先下载最新的 BlazeDS http ... -
又高兴了 .flash builder 4 的插件拷贝可以 在 eclipse 3.5 里面运行.
2010-03-23 14:39 4305才 把 flex builder 3.拷 ...
相关推荐
标题中的“flex + spring + blazeDS + google app JDO 分页”揭示了这是一个关于构建分布式应用的技术组合,其中涉及前端开发、后端服务以及数据管理。让我们深入了解一下这些技术及其在分页应用中的作用。 Flex是...
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
这些步骤详细指导了如何逐步建立一个功能齐全的Flex应用,该应用能够通过BlazeDS与Spring服务通信,并利用Hibernate与数据库交互。 在实际的开发过程中,这种整合提供了强大的功能,包括灵活的用户界面设计、高效的...
本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...
BlazeDS是Adobe提供的一个开放源代码服务器端技术,它为Flex应用程序提供了与Java应用程序进行实时双向通信的能力。BlazeDS支持AMF(Action Message Format),这是一种高效的数据传输格式,能快速地在Flex客户端和...
BlazeDS是Adobe提供的一个免费服务器端技术,它为Flex客户端提供了与Java应用程序交互的能力,包括实时消息传递、Remoting和数据推送等功能。Spring是一个广泛使用的Java企业级应用开发框架,它简化了Java应用程序的...
在本课程中,我们将深入探讨如何使用Flex 4.6、BlazeDS、Spring 3 和其他相关技术来构建一个实际的在线书店应用。Flex 4.6 是Adobe Flex框架的一个重要版本,它提供了强大的富互联网应用程序(RIA)开发工具,使...
【标题】"Flex4.X+BlazeDS+Spring3实战开发在线书店四"涉及的核心技术栈是Adobe Flex 4.6、BlazeDS、Spring 3框架以及Java相关的JPA和Hibernate,配合MySQL数据库实现一个在线书店的完整系统。下面将详细阐述这些...
综上所述,这个示例项目将教给开发者如何将Flex的富客户端体验与Spring的后端服务和Hibernate的数据管理相结合,形成一个完整的、功能强大的Web应用。开发者可以通过学习这个示例,理解如何设置BlazeDS以实现实时...
整合完成后,开发人员就可以在一个IDE内同时进行Flex前端和Java后端的开发,通过BlazeDS实现Flex与Java的通信。这种方式提高了开发效率,简化了项目管理,使得Flex界面可以无缝地与Spring管理和控制的业务逻辑以及...
而“bbs”可能是项目中的一个模块或示例,比如一个论坛系统,展示了如何使用Flex和Spring实现消息推送功能。 总的来说,这个项目展示了如何在Eclipse环境下集成Flex、Spring和BlazeDS来创建一个具备实时消息推送...
flex+spring+blazeds在MyEclipse下非常详细的结合配置
BlazeDS是Adobe提供的一个免费的服务器端数据推送技术,它允许Flex客户端与Java后端进行实时双向通信。通过使用BlazeDS,开发者可以轻松地将Flex应用与Java服务器进行集成,实现AMF(Action Message Format)数据...
3. **SpringFactory配置**:创建一个名为`SpringFactory.java`的文件,该文件通常可以从Spring官网获取,用于实现Spring与BlazeDS之间的通信。 4. **Service-Config配置**:编写`service-config.xml`文件,指定`id=...
BlazeDS 是 Adobe 提供的一个开源服务器端技术,用于实现Flex客户端与Java后端服务的通信。BlazeDS 支持AMF(Action Message Format),这是一种高效的数据传输协议,允许Flex和Java之间快速交换数据。在登录示例中...
BlazeDS 是 Adobe 推出的一个开源项目,它提供了一个服务器端的解决方案,用于实现在 Flex 客户端与 Java 应用服务器之间的实时双向通信。BlazeDS 支持AMF(Action Message Format)协议,这是一种高效的数据传输...
BlazeDS则是Adobe推出的一个开源项目,主要功能是作为中间件,允许Flex客户端与Java后端进行实时双向数据交换,通过AMF(Action Message Format)协议实现高效的数据传输。 在实际的整合过程中,我们通常会按照以下...
标题中的“flex+spring +BlazeDs+spring+ibatis+Cairngorm整合教程”涉及到的是一个基于Adobe Flex前端、Spring后端服务、BlazeDS作为数据通信中间件、Spring框架进行服务管理以及Ibatis作为持久层操作的典型企业级...