给你个例子:<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Model source="http://localhost:8080/testWeb/first" id="model">
    
    </mx:Model>
   
<mx:Panel title="用户信息" width="776" height="281" fontSize="18">
<mx:DataGrid dataProvider="{model.user}" width="748" height="231">
<mx:columns>
<mx:DataGridColumn dataField="name" headerText="用户">

</mx:DataGridColumn>
<mx:DataGridColumn dataField="pwd" headerText="密码">

</mx:DataGridColumn>
<mx:DataGridColumn dataField="school" headerText="现在学校">

</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:Application>
serverlet:
/**
 * 输出XML响应的servlet
 */
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.ParserConfigurationException;import com.xml.XML;
public class FirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

private XML xml = new XML() ;

public FirstServlet() {
super();
}
public void destroy() {
super.destroy();
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//*************在数据库中取出数据****************//
// ResultSet result = null ;
/**Connection con = null ;
Statement stmt = null ;


try {
xml.init() ;
// Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver") ;
//*********建立数据库 名为flex*************/
// String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=flex" ;
//**********换上你自己的用户名和密码信息************//
//con = DriverManager.getConnection(url, "sa", "135780") ;
  //  stmt = con.createStatement() ;
    //**********里面建表名为USERS  具体SQL语句见附件下载**********//
  //  result = stmt.executeQuery("select * from USERS") ;
//} catch(Exception e) {
// e.printStackTrace() ;
//}

        //重要:设置响应格式为XML格式
try {
xml.init() ;
} catch (ParserConfigurationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
response.setContentType("text/xml") ;
response.setCharacterEncoding("UTF-8") ;
PrintWriter out = response.getWriter() ;

try {
for (int i =0; i < 4; i++) {
String[] strs = new String[3] ;
strs[0] = "name"+i ;
strs[1] = "pwd"+i ;
strs[2] = "school"+i ;
//*****创建XMLdocument*******//
xml.create(strs) ;
}

//result.close() ;
//stmt.close() ;
//con.close() ;
//*******写XML文件到客户端********//
xml.output(out) ;
} catch (Exception e) {
e.printStackTrace();
}
}


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response) ;
}}/**
 * 生成XML文件的类
 * warison
 */
package com.xml;
import java.io.Writer;import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;
import org.w3c.dom.Element;import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
public class XML {
DocumentBuilderFactory builderFactory = null ;
DocumentBuilder builder = null ;
Document document = null ;
Element root = null ;

/**
 * 初始化一切预备参数
 * 
 * 编写者:
 * 
 * @throws ParserConfigurationException
 */
public void init() throws ParserConfigurationException {
builderFactory = DocumentBuilderFactory.newInstance() ;
builder = builderFactory.newDocumentBuilder() ;
document = builder.newDocument() ;
//*******生成根节点********//
root = document.createElement("info") ;
document.appendChild(root) ;
}

/**
 * 创建XML文档
 * 
 * @param   strs 
 *       -------传送过来的姓名和密码和学校参数
 * 
 * 
 */
public void create(String[] strs) {
//******第一级子节点******//
Element first = document.createElement("user") ;
root.appendChild(first) ;

for(int i=0; i<strs.length; i++) {
if(i==0) {
//*******第二级子节点******//
Element name = document.createElement("name") ;
name.appendChild(document.createTextNode(strs[i])) ;
first.appendChild(name) ;
} if(i==1) {
Element pwd = document.createElement("pwd") ;
pwd.appendChild(document.createTextNode(strs[i])) ;
first.appendChild(pwd) ;
} if(i==2) {
Element school = document.createElement("school") ;
school.appendChild(document.createTextNode(strs[i])) ;
first.appendChild(school) ;
}
}
}


public Document getDocument() {
return document ;
}

/**
 * 把XML文档写入到输出流
 * 
 * @param out
 *       ----指定的输出流
 * @throws Exception
 * 

 */
public void output(Writer writer) throws Exception{
Transformer trans = TransformerFactory.newInstance().newTransformer() ;
trans.setOutputProperty(OutputKeys.ENCODING, "UTF-8") ;
Source source = new DOMSource(document) ;
Result result = new StreamResult(writer) ;
trans.transform(source, result) ;
writer.flush() ;
writer.close() ;
}
}

解决方案 »

  1.   

    最好,下载myeclipse的flex插件,新建flex工程,更快点,很多东西都不用配置啦,o(∩_∩)o...哈哈
      

  2.   

    MyEclipse中新建一个Web项目WebFlex 
    右键WebFlex选择Flex Project Nature --->add Flex project nature 
    右键WebFlex选择properties,点击Flex build path  设置Flex的Build path 
                              点击Flex Application 选择文件夹 默认文件 
    http://www.uml.org.cn/j2ee/200910143.asp
      

  3.   

    http://blog.csdn.net/zhengcandan/archive/2008/11/24/3361086.aspx参考这个 就可以了
      

  4.   

    下载FB3_WWEJ_Plugin插件吧
    然后看下小列子,就OK了。
      

  5.   

    只是前台显示的手段而已,只要你后台提供了WebService,或者REST API就OK。
      

  6.   

    使用BlazeDS或许是首选,它提供了Java的远程访问以及消息服务参考资料
    http://www.cyeric.cn/article.asp?id=25
      

  7.   

    能不能给一个具体的步骤呢?我要的是java项目和flex项目都是独立的,不要重新建立项目如何整合到一起,谢谢了
      

  8.   

    你建项目的时候就选择与j2ee集成不行么、
      

  9.   

    基于RIA Flex Flash 平台开发的进销存企业信息管理系统开发经验
    (欢迎转载,转载请注明作者,尊重版权)关键字: RIA Flex 应用成功案例 实际项目四,基于Flex的进销存系统演示地址http://www.tangusoft.com/Demo/作者http://www.tangusoft.com
    一.    中小企业进销存系统和运行平台以及技术架构1. 中小企业进销存系统特点:
    a. 目标客户
    零售批发中小企业,企业规模人数500人以下,销售额1500万元以下。
    b. 数据操作频繁
    每天频繁操作销售和采购以及仓库出入库,经常需要查看企业基本信息,包括商品信息,客户供应商信息,应收应付。并且需要快捷的操作系统。
    c.存储数据量有限
    商品信息大概5000条,客户供应商大概1000,
    每天单据信息大概50条,每年单据信息大概20000条
    d.并发操作用户数量固定
    销售员,采购员,经理,财务,大概20人左右。
    e. 用户使用地点不同
    需要直接方便浏览器访问系统
    f. 客户浏览器处理功能强大
    目前客户电脑普遍内存1G, 处理器 双核2.0 以上
    g.中小企业普遍软件预算不高
    同时也尽量避免盗版软件引起的法律诉讼和纠纷。2. 运行平台和系统架构
    根据中小企业进销存系统的众多特点,同时考虑技术成熟度和新技术风险,我们决定采取以下运行平台和系统架构
    运行平台 Linux Apache Tomcat Mysql
    系统架构
    表现层Flex 3
    数据处理和控制层Blazds + Spring + IbatisFlex/Flash  具有以下优点
    客户端 界面友好,数据表现能力强大,处理能力强大,有一定的缓存数量的能力,减少服务器请求次数,节省不必要的网络传输。
    BlazDS 能够处理并发用户的请求,并且能够压缩数据。
    Spring  声明性的代码配置,减少系统维护工作量
    Ibatis   减少实际编码,考虑以后支持多种商业数据库运行平台免费,企业零预算。二,框架和代码生成器
    1.     选择成熟的Flex 框架cairngorm 和 pure MVC 是目前成熟的open source 框架。
    基于Adobe 支持和维护cairngorm,所以采用cairngorm
    同时cairngorm 对view 表现层 和 control 控制层 的 隔离和耦合没有成熟的解决方案,开发过程我们曾经使用ViewControllerHelper ,用addListener监听器监听event 事件的执行,实际过程发现代码维护成本太高,遂中途放弃。
    最后我们同时引进universal mind cairngorm作为补充辅助框架。
    2.    Ibatis 代码生成器
    选择Abator
    三,解决方案
    1. 客户端尽可能使用单例模式
    减少不必要的客户端内存开销
    2. 适度利用客户端缓存
    对于商品以及客户供应商, Flex 缓存这些数据,各模块共享数据。
    3.    尽可能的采用lazy load 惰性载入数据
    很多Flex 系统采用初始化时候一次性载入系统所需要数据,结果导致延长用户登录时间,用户体验非常的差。
    4.    不要过度依赖客户端处理能力
    特别是大数据排序或者处理请求大数据能力的时候,flex 很容易导致浏览器停顿和不响应。请把大数据排序放在Java或者数据库端,适度的分页分段向服务器请求数据。
    5.    最大有效的利用Flex 3新的类库。
    减少开发工作量。
    例如利用arraycollection 内置的filerfunction 进行查找数据。
    6. 定制开发一些特有的控件
    带合计栏的datagrid
    能模糊查询的combobox
    7.报表开发
    使用成熟的jasper report 框架。
    8. 用户权限的开发
    动态创建用户所能操作的模块,而不是简单控制模块的可见和不可见属性
    9. 减少生成swf 大小
    使用runtime shared library 编译swf
    10. 开发模块组件化
    判断标准是没有出现冗余重复模块代,application mxml 文件代码简洁
    11. 模块之间的数据和方法调用A模块引用B模块的数据d和方法f,避免简单的调用B.d 和 B.f
    需要采用数据和方法的传递,以免多层次的模块数据和方法调用导致代码的复杂。
    12 使用resource bundle
    标签和文本以及提示从resource 文件读取。
      

  10.   

    看见了 就一下吧现在再看Ext jS的内容....
      

  11.   

    学习LCDS   这个就很简单了。
      

  12.   

    MyEclipse中新建一个Web项目WebFlex 
    右键WebFlex选择Flex Project Nature --->add Flex project nature 
    右键WebFlex选择properties,点击Flex build path  设置Flex的Build path 
    点击Flex Application 选择文件夹 默认文件 
      

  13.   

    恩!就是!在MyEclipse上下载一个插件!
      

  14.   

    最近也在弄这个问题。不过弄好了。就是我把我的Flex项目整合到了web项目中去。首先创建好你的Java项目,然后在webroot文件夹下,把blazeds import进去(blazeds 是用来和Flex之间进行通信交互的。),然后把Java项目发布到tomcat中,OK,运行tomcat。在Flex Builder中建立Flex项目
    1、Application type 选择Web application;
    2、Server technology 选择J2EE;
    3、如果你不打算使用Remote Object不要勾选Use remote object access service。
    下一步
    Web root选择你发布到tomcat中的java工程目录,
    Root URL写入你要再浏览器中访问该项目的url :http://localhost:8080/Hello;
    请确保已经开启tomcat服务,然后点击Valdate Configuration按钮,没有任何错误提示点击Finish即完成项目创建,此flex项目中最后的编译swf文件都会保存在tomcat下的工程目录的一个(flex项目名称)-debug文件夹中,当然你也可以更改这个路径就在output folder那。OK。在jsp中写一个链接调用即可。<a href="<%=path%>/Hello_test-debug/Hello_test.html" >测试信息</a>
      

  15.   

     这个不需要在MyEclipse中安装插件。。我感觉插件弄 的蛮不爽的。。额。呵呵
      

  16.   

    google一下吧,网上有很多整合两者的文档
      

  17.   

    这个嘛,要看你用哪种通信方式了,方法太多了。
    httpService ,RemoteObject,webService,socket等等吧
      

  18.   

    插件  + 一个jar包  flex的
      

  19.   

    除了这个,楼上别人的都是废话,人家要的是两个单独的工程,不是flex和java建在一个工程里
      

  20.   

    Java项目加入flex步骤
    准备工作:
    1、 下载FLEX的插件,下载 flex 3.0 plugin 插件 装在 我的myeclipse 6.0 上,下载地址:http://trials.adobe.com/Applications/Flex/FlexBuilder/3/FB3_WWEJ_Plugin.exe 
    2、 下载 blazeds ,下载地址: 
     http://download.macromedia.com/pub/opensource/blazeds/blazeds_bin_3-0-0-544.zip 
    解压之后是个 blazeds. war包,把它放在tomcat 的webapp里面 部署一下就会释放出来一个类似与工程文件的blazed应用程序。
    步骤:
    1、 先建立一个web工程flexweb。 
    2、 向flexweb工程手工添加Flex需要的元素。
    1)首先将BlazeDS需要的jar文件拷到工程的lib目录下。可以将blazed应用程序中的lib下的jar文件拷到该工程下的lib目录下。
    2)然后要加入Flex BlazeDS需要的配置文件。在WEB-INF下新建一个名为flex的文件夹,然后将我们blazed应用程序下的WEB-INF/flex该文件夹下的四个xml文件拷到该文件夹下。
    3)最后,修改web.xml文件,加入Flex的配置。可以把blazed应用程序的web.xml的部分代码拷过来。
    3、 将该工程发布到tomcat下,并启动tomcat。(注:一定要启动tomcat,因为在后面的设置中,它要验证工程的路径)
    4、 Add Flex ProjectFlex Project Nature然后在该工程上右键 Nature
    5、 设置完成后,会发现web工程的目录结构已经发生了改变
    flex的mxml文件默认的放在src文件夹中,和java文件共用一个目录。
    6、 配置flex默认的sdk。 在你的工程名点右键,然后选择FLEX Compile选择第一个use default sdk,而不是选择use server's sdk,如果不选择这个选择项,mxml文件将不会编译.7、调用java类
    1)新建一个java类:Hello.java2)为flex配置这个要调用的对象,修改WEB-INF/flex下remoting-config.xml
    加入:  
    <destination id="hello">  //hello是别名,他会和mxml文件中mx:RemoteObject destination="hello"的destination对应
    <properties>  
    <source> com.Hello </source>  
    //com.Hello为类的全路径名
    </properties>  
    </destination>
    配置services-config.xml
     <channels>  <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
      <endpoint url="http://127.0.0.1:8080/flexweb/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
      </channel-definition>  <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
      <endpoint url="https://127.0.0.1:8080/flexweb/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
      <properties>
      <add-no-cache-headers>false</add-no-cache-headers>
      </properties>
      </channel-definition>  <channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel">
      <endpoint url="http://127.0.0.1:8080/flexweb/messagebroker/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
      <properties>
      <polling-enabled>true</polling-enabled>
      <polling-interval-seconds>4</polling-interval-seconds>
      </properties>
      </channel-definition>  </channels>//兰色字体为固定写法////http://localhost:8080/flexweb/messagebroker/amf中的含义为,http://主机地址:断口号/应用程序名/messagebroker/amf3)编写一个Flex程序
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script><![CDATA[
    import mx.rpc.events.ResultEvent;
    function gg(evnet:ResultEvent):void{
    var ff:String = evnet.result as String;
    ggg.text = ff;
    }
    function remotingSayHello():void{
    var sname:String = nameInput.text;
    h.hello(sname);
    }
    ]]>
    </mx:Script>
    <mx:RemoteObject destination="hello" id="h"
    result="gg(event)" endpoint="http://localhost:8080/flexweb/messagebroker/amf" >//endpoint=http://localhost:8080/flexweb/messagebroker/amf中的含义为,http://主机地址:断口号/应用程序名/messagebroker/amf
    </mx:RemoteObject>
    <mx:TextArea id="ggg" x="109" y="122"/>
    <mx:Button label="say hello" click="remotingSayHello();" x="144" y="193"/>
    <mx:TextInput id="nameInput" x="109" y="73"/>
    <mx:Label text="name" x="47" y="75"/>
    </mx:Application>
     4)重启tomcat,运行flexweb.mxml.在ssh框架中加入flex需要注意的:
    1 增加一个SpringFactory类
       package util;import org.springframework.context.ApplicationContext;    
    import org.springframework.web.context.support.WebApplicationContextUtils;    
     import org.springframework.beans.BeansException;    
     import org.springframework.beans.factory.NoSuchBeanDefinitionException;    
      
    import flex.messaging.FactoryInstance;    
     import flex.messaging.FlexFactory;    
    import flex.messaging.config.ConfigMap;    
       import flex.messaging.services.ServiceException;         
        public class SpringFactory implements FlexFactory    
        {    
          private static final String SOURCE = "source";    
           
               public void initialize(String id, ConfigMap configMap) {}    
           
                public FactoryInstance createFactoryInstance(String id, ConfigMap properties)    
           {    
               SpringFactoryInstance instance = new SpringFactoryInstance(this, id, properties);    
               instance.setSource(properties.getPropertyAsString(SOURCE, instance.getId()));    
              return instance;    
          } // end method createFactoryInstance()    
           
                public Object lookup(FactoryInstance inst)    
            {    
               SpringFactoryInstance factoryInstance = (SpringFactoryInstance) inst;    
               return factoryInstance.lookup();    
           }     
           
           
           static class SpringFactoryInstance extends FactoryInstance    
           {    
               SpringFactoryInstance(SpringFactory factory, String id, ConfigMap properties)    
              {    
                    super(factory, id, properties);    
                }    
           
           
                public String toString()    
                {    
                   return "SpringFactory instance for id=" + getId() + " source=" + getSource() + "scope=" + getScope();    
               }    
          
               public Object lookup()     
               {    
                    ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(flex.messaging.FlexContext.getServletConfig().getServletContext());    
                    String beanName = getSource();    
           
                    try   
                    {    
                        return appContext.getBean(beanName);    
                    }    
                    catch (NoSuchBeanDefinitionException nexc)    
                    {    
                        ServiceException e = new ServiceException();    
                        String msg = "Spring service named ’" + beanName + "‘ does not exist.";    
                       e.setMessage(msg);    
                        e.setRootCause(nexc);    
                       e.setDetails(msg);    
                        e.setCode("Server.Processing");    
                        throw e;    
                    }    
                    catch (BeansException bexc)    
                    {    
                        ServiceException e = new ServiceException();    
                        String msg = "Unable to create Spring service named ’" + beanName + "‘ ";    
                        e.setMessage(msg);    
                       e.setRootCause(bexc);    
                       e.setDetails(msg);    
                        e.setCode("Server.Processing");    
                        throw e;    
                    }     
                }    
                    
           }     
           
       }     
    2. 在WEB-INF\flex\services-config.xml中配置
         <!-- register Spring  这个一定要记住哦!,后面会用到springfactory-->
       <factories>  
    <factory id="springfactory" class="util.SpringFactory"/>  
    </factories>  
    3. 配置 WEB-INF\flex\remoting-config.xml
    <destination id="loginflex">
    <properties>
    <factory> springfactory </factory>
    <source>loginService</source>
    </properties>
    </destination>
    4.其他配置和上面的一样(此方法和Struts2的配置有冲突,Struts2会把flex的请求拦截掉)。
      

  21.   

    我也是j2ee和flex项目各自独立的
    我用的是remote Object 搞了几个小时都没搞好
    有没有哪位高手搞一个这样的例子 让大家学习撒