Flex和jsp整合实践

 

 

一、前言

 

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

二、简单介绍

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

 

效果:

 

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

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

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

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

2、  发送内容字数限制:这是在 TextArea 控件的 change 事件处理函数中实现的。

3、  发送号码有效性检测:这是通过 flex 调用外部 javascript 函数来实现的。

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

5、  jsp flex 间的参数(包括 session 变量)的传递。

三、实现步骤

1 Flex 编程部分

Flash Builder 4 中新建工程。

(1)    新增两个 ActionScript CheckTree.as CheckTreeRenderer.as ,实现扩展的数型控件,具体实现参考源文件。

新增 mxml 应用程序 jsptree.mxml ,实现群发页面,设计如下界面:

 

(1)    具体实现参考源文件。

(2)    构建项目,把生成的 .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下测试通过。

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
mybatis-flex是一个用于整合MyBatis和MyBatisPlus的工具,它提供了一种简单的方式来使用MyBatis-Plus的功能,同时保留了MyBatis的灵活性。 首先,让我们了解一下MyBatis和MyBatis-Plus的概念。MyBatis是一个持久层框架,它提供了一种将SQL语句与Java代码进行映射的方式,使得开发者可以通过编写简单的XML配置文件或者注解来实现数据库操作。而MyBatis-Plus是在MyBatis的基础上进行扩展的一个框架,它提供了更多的便利功能,如通用CRUD操作、分页查询、条件构造器等。 接下来是介绍mybatis-flex整合方式。mybatis-flex通过提供一个基于注解的方式来整合MyBatis和MyBatis-Plus。你只需要在Mapper接口上添加@Mapper注解,并继承BaseMapper接口,就可以直接使用MyBatis-Plus提供的通用CRUD方法。同时,你还可以使用@SelectProvider注解来编写动态SQL查询语句。 下面是一个示例代码,展示了如何使用mybatis-flex整合MyBatis和MyBatis-Plus: ```java @Mapper public interface UserMapper extends BaseMapper<User> { @SelectProvider(type = UserSqlProvider.class, method = "getUserByName") User getUserByName(String name); } @Mapper public interface UserSqlProvider { default String getUserByName(String name) { return new SQL() .SELECT("*") .FROM("user") .WHERE("name = #{name}") .toString(); } } ``` 在上面的示例中,UserMapper继承了BaseMapper接口,并添加了@Mapper注解。UserSqlProvider类使用@SelectProvider注解来提供动态SQL查询语句。 通过使用mybatis-flex,你可以享受到MyBatis-Plus提供的便利功能,同时保留了MyBatis的灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值