`
huibin
  • 浏览: 757095 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

(转) Flex和jsp整合实践

    博客分类:
  • Flex
阅读更多

一、前言

时下 RIA Rich Internet Applications )非常时髦 , 而部门中已有很多项目开始使用 flex 框架进行开发。为了追上其他项目组新技术应用的步伐,因此我想在所负责的项目中尝试进行 flex jsp 的整合,从而为下一步升级改造提供可借鉴的经验和基础。

二、简单介绍

测试地址: http://10.180.4.50/flexsend/flexSend.jsp

效果:

上图为一个简单的 flex 界面。

短信平台是一个典型的 j2ee 应用,由于 flex 中缺乏 session 的概念,我们必须借用 jsp 来进行 session 的获取,因此这个 flex 应用实际上是嵌入在 jsp 页面中的。

在整个 swf 文件中集成了最常见的短信群发页面的主要功能,包括:

<!-- [if !supportLists]-->1、  <!-- [endif]-->地址簿:树型显示一级组、二级组和手机号。支持 checkbox 进行多选,支持选择分支时自动全选下面所有子节点。分支三态显示:全选 / 部分选择 / 全不选。自动遍历已选手机号。这部分主要是通过一个用户自定义的 flex 控件 CheckTree (扩展了 mx.controls.Tree )来实现的。

<!-- [if !supportLists]-->2、  <!-- [endif]-->发送内容字数限制:这是在 TextArea 控件的 change 事件处理函数中实现的。

<!-- [if !supportLists]-->3、  <!-- [endif]-->发送号码有效性检测:这是通过 flex 调用外部 javascript 函数来实现的。

<!-- [if !supportLists]-->4、  <!-- [endif]-->Flex 表单提交到后台短信发送页面 (flexSend_Exe.jsp) :这是通过 flex 调用外部 javascript 函数来实现的。

<!-- [if !supportLists]-->5、  <!-- [endif]-->jsp flex 间的参数(包括 session 变量)的传递。

三、实现步骤

1 Flex 编程部分

Flash Builder 4 中新建工程。

<!-- [if !supportLists]-->(1)    <!-- [endif]-->新增两个 ActionScript CheckTree.as CheckTreeRenderer.as ,实现扩展的数型控件,具体实现参考源文件。

新增 mxml 应用程序 jsptree.mxml ,实现群发页面,设计如下界面:
<!-- [if !supportLineBreakNewLine]-->
<!-- [endif]-->

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- [if gte mso 10]> <mce:style><! /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --><!-- [endif]-->

<!-- [if !supportLists]-->(1)    <!-- [endif]-->具体实现参考源文件。

<!-- [if !supportLists]-->(2)    <!-- [endif]-->构建项目,把生成的 .swf .js 文件拷贝到 tomcat 的应用程序发布目录中。

 

2 jsp 编码部分

(1) 新建 xmltree.jsp ,主要是根据用户的部门 id 从数据库中获得通讯簿记录,并形成 xml 文件供 flex httpservice 组件调用,具体实现参考源文件。

(2) 新建 flexSend.jsp ,实现发送页面,需要注意的代码有如下几处:

6-7 行:

String xmldata=request.getRequestURL().toString();// 取得请求 url

       xmldata=xmldata.substring(0,xmldata.lastIndexOf("/"))+"/xmltree.jsp";

由于 ajax 跨域访问的问题, flex httpservice 组件在访问 web 页面时,不能把 url 写死,比如: http://www.handtimes.com/xxxxx 。因为如果 dns 不可用,我们常常会通过 ip 地址访问,这样的话, ip 地址和原来的域名不一样,就导致跨域访问问题 ,ajax 请求收不到 xml 数据,通讯簿树显示不出来。

 

60 行:

var flashvars =
{url:"<%=xmldata%>",unit:"<%=unit%>",mark:"<%=strName%>",maxwords:"<%=i_nameLength%>"};

jsp 中的 session 值,我们只能通过 flashvars 参数传递给 swf ,因此在这里我们给 flashvars 参数写入了许多 jsp 变量。

 

81-87 行:

function swfsubmit(selectedNo,attachedNo,content){

       dataform.AddDest.value=selectedNo+attachedNo;                                  dataform.content.value=content;

       if(confirm(" 确定要进行发送吗? ")){

                            doPost();

       }

}

 

实际上这个 js 函数当 swf 中的“确定”按钮被点击时调用。在这里我们仅把 flex 控件值做了一个复制,复制到 html 表单控件中,然后利用表单进行提交。

 

(3) 短信发送页面。没有什么特别的,具体实现参考源文件。

ie7.0和firefox下测试通过。

分享到:
评论

相关推荐

    Flex和jsp整合实践

    总结来说,"Flex和jsp整合实践"涉及到的技术点主要包括: 1. Flex应用的创建和交互逻辑,包括自定义组件和事件处理。 2. JSP页面的编写,实现服务器端的业务逻辑和数据处理。 3. 数据交换格式,如XML和JSON。 4. ...

    Flex For JSP.jar

    为了成功地将Flex与JSP整合,开发者需要掌握JSP、Servlet、Flex编程、AMF通信以及可能涉及的任何特定服务器端框架(如Spring、Struts等)的基础知识。通过有效的学习和实践,开发者可以创建出既有美观界面又有强大...

    Flex 和JAVAWEB整合文档

    Flex 和 JavaWeb 整合是将 Adobe 的 Flex 技术应用于Java Web开发中的一个关键步骤,这使得前端的用户界面可以充分利用Flex的富互联网应用程序(RIA)特性,同时利用Java后端的强大处理能力。Flex是一种基于...

    flex项目整合 jsp,编译错误解决方案

    在Flex项目中,我们经常会遇到与Java服务器端技术如JSP(JavaServer Pages)进行整合的需求,以便实现动态数据交互和视图更新。然而,这种集成过程并非总是顺畅的,可能会遇到各种编译错误。本篇将详细探讨“flex...

    flex4整合MyEclipse8.0教程

    在实际开发中,掌握Flex4和MyEclipse 8.0的整合将极大地提高开发效率,使得开发者能够充分利用Flex4的强大功能,同时利用MyEclipse的丰富工具集进行Java后端开发。通过学习和实践,开发者可以熟练地创建出功能丰富、...

    图文并茂、手把手教你怎么将Java项目与Flex4整合项目源代码

    整合Java和Flex4,通常涉及以下关键步骤: 1. **设置开发环境**:确保你安装了Java Development Kit (JDK)、Flex Builder或Apache Flex SDK以及集成开发环境(如IntelliJ IDEA或Eclipse)。这些工具将支持Java和...

    配置java和flex的整合

    通过不断地实践和学习,你将能够熟练掌握Java和Flex的整合,构建出高效、美观的Web应用。 以上就是关于“配置Java和Flex的整合”的详细步骤和相关知识点,希望对你有所帮助。记得在实际操作中,根据具体的项目需求...

    flex与struts2整合

    Flex与Struts2的整合是Web开发中的常见实践,旨在构建富互联网应用程序(RIA)。Struts2作为MVC框架,提供了强大的控制层功能,而Flex则以其丰富的用户界面和强大的数据交互能力受到开发者青睐。本文将详细讲解Flex...

    j2ee+flex+blazeds 配置实践

    本文将深入探讨如何配置和实践J2EE、Flex和BlazeDS的整合应用。 一、J2EE基础 J2EE是Java平台上用于构建分布式企业级应用的框架,它包括一系列标准和API,如Servlet、JSP、EJB等。开发者可以使用这些组件来处理业务...

    Flex整合J2EE开发小记+源码下载

    8. **最佳实践**:博主可能提出了在Flex和J2EE整合中的一些最佳实践,如如何有效地分层设计,如何处理异步通信,以及如何设计可维护和可扩展的系统。 9. **持续集成与部署**:对于企业级应用,如何将Flex前端和J2EE...

    整合flex与j2ee

    这篇文章可能还涵盖了性能优化、故障排查和最佳实践,对于那些希望将Flex的强大视觉效果与J2EE的稳定后端结合的开发者来说,无疑是一份宝贵的资源。通过深入理解和实践这些知识点,开发者能够构建出高效、响应迅速且...

    J2EE集成Flex--MXML组件嵌入JSP

    **标题解析:** "J2EE集成Flex--MXML组件嵌入JSP" 指的是在Java企业级应用(J2EE)中整合Adobe Flex技术,并将Flex的MXML组件嵌入到JSP(JavaServer Pages)页面中,以实现富互联网应用程序(RIA)的开发。Flex是一...

    Flex+LCDS+JAVA入门

    Flex+LCDS+JAVA入门教程主要涵盖了三个关键的技术领域,它们分别是Adobe Flex、LCDS(LiveCycle Data Services)以及Java...在学习过程中,除了文档,还可以参考官方文档、在线教程、社区论坛等资源,不断实践和提高。

    BlazeDS集成Flex+Tomcat开发J2EE模块整合实例

    Tomcat能够运行Java Servlets和JavaServer Pages(JSP),并作为Web服务器使用,为Flex和BlazeDS提供后端支持。 整合BlazeDS、Flex和Tomcat的步骤如下: 1. **环境配置**:首先,确保安装了Java Development Kit ...

    Flex实例 Flex基础 Web+Flex+LCDS Flex跟Java交互

    Flex是Adobe公司开发的一种开放源代码的富互联网应用程序(Rich Internet Application,RIA)框架,它主要基于...通过实践FlexDemo,你可以提升自己在Flex开发领域的技能,并理解如何构建高效、交互性强的RIA应用。

    flex 结合spring activemq 做的一个简易聊天室

    标题中的“flex结合spring activemq做的一个简易聊天室”涉及到的是使用Adobe ...这个项目是学习如何整合多种技术来构建实时通信应用的宝贵资源,对于想深入了解Flex、Spring和ActiveMQ集成的开发者来说非常有价值。

    Flex4+Spring+Hibernate整合Demo项目(Jar包全 包含Blades War包)

    Flex4+Spring+Hibernate整合是Web开发中一种常见的技术栈组合,主要应用于构建富客户端的交互式应用程序。Flex4作为客户端展示层,Spring作为服务端的控制层和依赖注入框架,而Hibernate则作为持久化层,负责数据库...

    Flex+LCDS+Java+入门教程

    10. **案例分析**:通过实际案例来演示Flex、LCDS和Java的整合,帮助你更好地理解和应用这些技术。 这个入门教程将引导你逐步掌握Flex、LCDS和Java的综合运用,为开发高质量的RIA应用打下坚实的基础。通过深入学习...

Global site tag (gtag.js) - Google Analytics