BlazeDS + Hibernet + Flex 开发Web应用
BlazeDS + Hibernet + Flex 开发Web应用
网上有关于集成BlazeDS和Flex的示例,但是大部分都是将客户端和服务器代码放置到一个项目,这种方式使我们在编码时容易产生混淆,并且也不利于大的项目的开发与管理。下面通过一个简单的例子演示一下,建立客户端和服务器端分离的,服务器端采用Hibernet+BlazeDS的Flex Web项目。希望对大家有所帮助。
一、开发环境准备
1. 安装MyEclipse8.0插件版、FlashBuider4插件版。注意,这里最好不要安装独立安装版本,要不开发的时候要打开几个IDE,很不方便;
2. 下载BlazeDS 3.2(更高版本也可以),并解压blazeds.war文件,备用;
3. 安装Tomcat 6.0 服务器;
4. 安装DBMS。这里我用的是MSSqlServer 2000。建立测试数据库flex,建立一个login表格,CREATE TABLE login (id char(10), name char(20), pwd char(20))。随便输入一点数据,做测试用。
二、J2EE服务器端开发
进入到Eclipse开发环境,切换到MyEclipse视图。
1. 新建Web Project,然后将blazeds.war解压后的WEB-INF、META-INF两个文件夹拷贝到项目中,覆盖原来的项目文件;
如果你使用的是blazeds3.2这些版本,那么等你把服务器所有工作完成的时候,你会发现客户端仍然连接不上,这是因为3.2版本的blazeds.war文件解压后的blazeds\WEB-INF\lib的目录下面缺少一个flex-rds-server.jar的文件,你可以解压其它更高版本的blazeds.war文件,然后将这个文件复制到相应的文件夹。
2. 修改web.xml文件。
1) 注释或者删除<!DOCTYPE行;
2) 将<display-name>BlazeDS</display-name>
修改为<display-name>JeeServer</display-name>
3) 加入以下内容
<servlet>
<servlet-name>RDSDispatchServlet</servlet-name>
<servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class>
<init-param>
 
相关文档:
服务器端代码,amfphp的services目录下建立readData.php文件,代码如下
<?php
class ReadDB
{
function getData()
&nb ......
首先:确定数据库的编码为utf8,正常储存中文(用MySQL-Front查看中文是否正常)
然后:Services查询MySQL时使用"SET NAMES 'utf8'",且通过"amfphp/browser"运行看看是否中文,如果乱码则修改gateway.php文件,去掉 $gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");
最后:运行Flex程序显 ......
这里分两种情况,一种是数据源在MXML文件中,如:
<mx:XML id="treeXML"
format="e4x">
<root>
<node label="通知通告管理"
data="0">
......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="initApp()">
<mx:states>
<mx:State name="index">
<mx:RemoveChild target="{loginPanel}"/>
......
flex三种连级方式:
内联:<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="var codetxt:Text=new Text">
</mx:Application>
级联:<mx:Application xmlns:mx="http: ......