- 浏览: 973010 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
Yunjey:
Yunjey 写道这样子的话、grid中的editable如何 ...
Flex创建可编辑以及分页的DataGrid -
Yunjey:
这样子的话、grid中的editable如何设置啊?!
Flex创建可编辑以及分页的DataGrid -
di1984HIT:
写的很好~~
JCalendar组件 -
sanny81:
此文真棒!感谢一路风尘的奉献!
但我有一疑 ...
Filter发送自定义数据详解 -
umgsai:
求完整demo umgsai@126.com
Flex和Jsp创建用户登入系统
本文主要介绍和实现怎么使用Flex-java来实现Email的发送。这尤其是在做用户回馈的时候需要用到。当然这实现的只要是一个简单的例子。正在执行发送Email功能还是使用java来实现的,Flex只不过提供了数据的输入和封装。使用的原理很简单:
Flex-Form <--接受用户输入
||
||使用RemoteObject方式就用户输入的数据封装成json格式传递到后台java bean
||
Java Bean()--->执行真正的Email发送----->回馈消息---->Flex-Form
使用的界面如下图:
简单实现了用户输入的验证以及Email验证(更详细的可以参考Adobe数据验证
)
以下是实现的代码:
1.后台java处理:【你需要两个jar: mail.jar
and activation.jar
】
package mail; import javax.mail.*; import javax.mail.internet.*; import java.util.*; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class SendFlexMail { private static final String SMTP_HOST_NAME = "smtp.163.com"; private static final String SMTP_AUTH_USER = "feixianryexin"; private static final String SMTP_AUTH_PWD = "yourpassword"; // Add List of Email address to who email needs to be sent to private String[] emailList; public String sendFlexMail(String flexMail){ String result=""; JSONArray flexJavaMail = JSONArray.fromObject(flexMail); emailList = new String[2]; JSONObject mailJsonObj = JSONObject.fromObject(flexJavaMail.getString(0)); emailList[0] = mailJsonObj.getString("senderEmail");//send mail to yourself emailList[1] = mailJsonObj.getString("sendToEmail"); String senderName = mailJsonObj.getString("senderName"); String sendToName = mailJsonObj.getString("sendToName"); String senderMail = mailJsonObj.getString("senderEmail"); String emailMessage = mailJsonObj.getString("emailMessage"); String emailTopic = sendToName+":A Letter From Your Friend "+senderName; try{ postMail(emailList,emailTopic, emailMessage,senderMail); result="Congratulations!"; }catch (MessagingException e){ e.printStackTrace(); } return result; } public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException { boolean debug = false; //Set the host smtp address Properties props = new Properties(); props.put("mail.smtp.host", SMTP_HOST_NAME); props.put("mail.smtp.auth", "true"); Authenticator auth = new SMTPAuthenticator(); Session session = Session.getDefaultInstance(props, auth); session.setDebug(debug); // create a message Message msg = new MimeMessage(session); // set the from and to address InternetAddress addressFrom = new InternetAddress(from); msg.setFrom(addressFrom); InternetAddress[] addressTo = new InternetAddress[recipients.length]; for (int i = 0; i < recipients.length; i++) { addressTo[i] = new InternetAddress(recipients[i]); } msg.setRecipients(Message.RecipientType.TO, addressTo); // Setting the Subject and Content Type msg.setSubject(subject); msg.setContent(message, "text/plain"); Transport.send(msg); } /** * SimpleAuthenticator is used to do simple authentication * when the SMTP server requires it. */ private class SMTPAuthenticator extends javax.mail.Authenticator { public PasswordAuthentication getPasswordAuthentication() { String username = SMTP_AUTH_USER; String password = SMTP_AUTH_PWD; return new PasswordAuthentication(username, password); } } }
2.前台的Flex-Form:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ import mx.controls.Alert; import mx.controls.TextInput; import mx.rpc.events.ResultEvent import mx.collections.ArrayCollection; import com.adobe.serialization.json.JSON; private var flexMail:ArrayCollection; public function sendMailAction( ):void { flexMail = new ArrayCollection(); var mailObj:Object = new Object(); mailObj.senderName = senderName.text; mailObj.senderEmail =senderEmail.text; mailObj.sendToName = sendToName.text; mailObj.sendToEmail = sendToEmail.text; mailObj.emailMessage =emailMessage.text; //check email valid if(senderName.text !="" && senderEmail.text!=""&&sendToName.text!=""&& sendToEmail.text!=""&& emailMessage.text!=""){ if(senderEmail.text.indexOf("@")==-1 || sendToEmail.text.indexOf("@")==-1){ labState.text="Email格式不正确哦!"; }else{ flexMail.addItem(mailObj); var emailString:String = JSON.encode(flexMail.toArray()); sendMail.sendFlexMail(emailString) labState.text="正在发送请稍候..."; } }else{ labState.text="请输入所有的选项!"; } } public function sendFlexMailResult(event:ResultEvent):void { Alert.show(event.result as String); senderName.text=""; senderEmail.text=""; sendToName.text=""; sendToEmail.text=""; emailMessage.text=""; labState.text="恭喜,成功发送邮件!"; } ]]> </mx:Script> <mx:Style source="mailFormCSS.css" /> <mx:RemoteObject id="sendMail" destination="sendFlexMail" showBusyCursor="true" result="sendFlexMailResult(event)" /> <mx:Panel width="448" height="474" > <mx:Text width="100%" height="29" text="Email Form" styleName="header"/> <mx:Text text="Flex3 / BlazeDS / Java" styleName="subHeader" /> <mx:HRule width="100%"/> <mx:Form id="emailForm" width="100%" > <mx:FormItem label="Your Name:" horizontalAlign="left" width="100%"> <mx:TextInput id="senderName" width="100%"/> </mx:FormItem> <mx:FormItem label="Your E-mail:" width="100%"> <mx:TextInput id="senderEmail" width="100%"/> </mx:FormItem> <mx:FormItem label="Friends Name:" horizontalAlign="left" width="100%"> <mx:TextInput id="sendToName" width="100%"/> </mx:FormItem> <mx:FormItem label="Friends E-mail:" width="100%"> <mx:TextInput id="sendToEmail" width="100%"/> </mx:FormItem> <mx:FormItem label="Message" horizontalAlign="left" width="100%"> <mx:TextArea id="emailMessage" width="100%" height="100"/> </mx:FormItem> <mx:FormItem width="100%" height="33"> <mx:Spacer width="200" /> <mx:Button id="submitBtn" label="Submit" click="sendMailAction()"/> </mx:FormItem> </mx:Form> <mx:HBox styleName="cbStyle" width="414"> <mx:Label id="labState" width="393" fontSize="14" color="#FE0113"/> <!-- <mx:CheckBox label="Check to send a copy to yourself" id="cb"/>--> </mx:HBox> <mx:HRule width="100%" height="0"/> <mx:Label styleName="footer"> <mx:htmlText><![CDATA[<a href="http://yexin218.cublog.cn" target="_blank" ><b>一路风尘制作</b></a>]]></mx:htmlText> </mx:Label> </mx:Panel> </mx:Application>
数据传递使用的是BlazeDS.关于BlazeDS参考:使用BlazeDS实现Java和Flex通信
附件下载【包含Flex-plugin的eclipse工程文件以及源码】:DownLoad
评论
2 楼
hacker47
2008-07-13
FLEX几乎只是客户端的解决方案,AIR中有对数据库操作的相关类库,可以目前支持差强人意,据我所知,FLEX自身还不能发送EMAIL.
1 楼
yexin218
2008-06-16
我一直在想,Flex本身有没有发送Email的功能呢?知道的朋友,不妨相告。谢谢
发表评论
-
Rounded Colorized Image Borders
2009-05-16 22:24 1086This week I ran across a really ... -
Flex使用自定义皮肤和字体
2009-03-29 14:57 4244首先介绍两个Flex皮肤网站: 1. Skins and Th ... -
Flex--XML转换成ArrayCollection
2009-03-28 23:24 9675xml数据: <?xml version="1 ... -
Flex使用弹出窗口为DataGrid添加新数据
2009-03-28 21:01 2686经常在Demo中会看到列表,表格等方式来显示数据。当然有时候也 ... -
关于Flex使用Blazeds连接Java后台的一个注意笔记
2009-03-24 16:49 2221今天在做Flex程序测试的时候,发现之前可以通过Blazeds ... -
Flex-设置DataGrid被选择行的风格
2009-03-22 20:54 7217这里例子将展示如何使用用户自定义的item renderer来 ... -
Flex使用JSON格式与Java通信
2009-03-22 00:09 7332在使用Flex,Java,Json更新Mysql数据【高级篇】 ... -
Flex--主程序与弹出窗口之间传递数据
2009-03-20 23:08 2683主程序:TitleWindowDataTest.mxml & ... -
Flex中显示手型鼠标
2009-03-06 21:40 5228有些时候,我们需要在Flex组件上--Label或者Butto ... -
Flex与JSON及XML的互操作
2009-03-01 17:18 1924作者 Jack Herrington 译者 张凯 ... -
Flex代码格式化插件
2009-03-01 16:52 2749在7Yue 那里看到这个轻巧实用的Eclipse插件,它可以 ... -
Flex-CUBlog排行榜解析
2008-07-29 20:55 1983不知道为什么一直有一个想法把CUBlog排行榜的数据提取出来放 ... -
使用Flex,Java,Json更新Mysql数据【高级篇】
2008-06-24 20:21 5844前面已经介绍如何使用Flex,java,json来更新dat ... -
Flex+Java Servlet文件上传实例
2008-06-23 21:05 20312资源都是来自网上。本实例将展示使用Flex和java serv ... -
Flex和Jsp创建用户登入系统
2008-06-22 16:16 4307在开始之前我们先来看下效果:【userName==passwo ... -
Flex中嵌入Google地图
2008-06-18 22:29 5984在我们开始之前,先来看一个例子:http://scriptpl ... -
Flex程序发布
2008-06-17 23:32 4018当你写好了一个Flex程序,想要按照某种方式发布。比如我们在 ... -
Flex自定义Alert窗口显示位置
2008-06-16 18:25 6345好像Flex3也没有找到可以直接使用的(x,y)的方法来指定A ... -
Flex支持滑轮滚动
2008-06-16 18:23 3450有些时候需要在Flex界面中支持鼠标的滑轮滚动功能,比如通过滑 ... -
Flex创建可编辑以及分页的DataGrid
2008-06-13 16:32 14890之前那篇文章:使用Flex,Java,Json更新Mys ...
相关推荐
首先,要实现Email发送,我们需要理解Flex中的网络通信机制。Flex主要通过HTTPService、WebService或Socket等组件与服务器进行数据交换。在这个场景中,我们可能会使用SMTP(Simple Mail Transfer Protocol)服务,...
5. `Email.txt`:这可能是一个简单的文本文件,包含邮件发送的示例代码或者是一些关键配置信息,如SMTP服务器的设置。 总的来说,这个压缩包是学习和实践FlexBuilder中使用AS3发送电子邮件的好资源。通过阅读和实践...
以下是一个简单的示例: - FLEX端: - 使用HTTPService对象创建一个请求,设置URL为C#服务端的地址,结果格式为E4X,方法为POST,并设置contentType为"application/xml"。 - 发送XML数据到C#端,然后添加一个...
在本场景中,"flex send mail by as" 指的是使用Flex和ActionScript(AS)来实现邮件发送功能。ActionScript是Flex中用于交互逻辑和控制的主要脚本语言,类似JavaScript,但它是面向对象的。 SMTP(Simple Mail ...
创建Flex与Spring之间的控制器,比如`FlexController`,它将处理Flex客户端的请求,调用Service层的方法,并通过Spring发送响应回Flex。 9. 结果返回: 当Flex客户端调用远程对象的方法时,服务器端执行相应的...
发送附件是通过`Multipart`对象实现的,它允许我们组合多个部分,包括文本和二进制文件。首先,创建一个`MimeBodyPart`对象来表示附件,然后将其添加到`Multipart`: ```java MimeBodyPart attachmentPart = new ...
为了解决FLEX无法直接与数据库通信的问题,可以采用以下方法:通过HTTPService组件向JSP页面发送请求,由JSP页面处理这些请求并与数据库进行交互。这种方法不仅解决了跨平台问题,还能够利用Java强大的后端处理能力...
- Flex应用程序通过Flash Remoting向服务器端的数据服务发送请求。 - 服务器端的数据服务接收请求,与数据库进行交互,获取所需数据。 - 数据服务处理数据并返回结果给Flex应用程序。 - Flex应用程序根据返回的...
MXML 文件定义了 Flex 应用的界面和行为,包括一个表单用于输入员工信息(如 Name, Email, Phone, ZipCode),以及两个按钮(Submit 和 Reset)。`HTTPService` 组件被用来发送 HTTP 请求到服务器,这里的 URL 设置...
在Flex中,可以通过和等组件来实现带有数据验证的表单界面。例如,以下代码段表示了一个带有城市字段的表单项,其中"required=true"表示该字段是必填项,但这个属性只是在界面上显示一个星号,并不会进行数据格式的...
### RPC的实现 #### 1. 前言 远程过程调用(RPC,Remote Procedure Call)是一种协议,它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的程序,无需了解底层网络协议细节。RPC设计的目标是为开发者...
1. 提交表单:利用jQuery的`submit`事件,我们可以阻止表单的默认提交行为,并通过AJAX将数据发送到服务器。例如: ```javascript $("#msg-form").submit(function(event) { event.preventDefault(); var name = ...
例如,我们可能有一个`User`实体类,其中包含`id`、`name`和`email`等属性。然后,我们可以通过`EntityManager`来执行CRUD(创建、读取、更新、删除)操作。 在Flash Builder中,我们创建一个新的ActionScript项目...
- **Flexbox布局**:使用`display: flex`和相关属性,可以轻松实现响应式和对齐布局,适应不同屏幕尺寸的登录表单。 - **Grid布局**:CSS3的`grid`布局可以创建二维网格,方便地调整登录界面的元素布局。 2. **...
例如,可以使用`display: flex`或`grid`来实现响应式布局,适应不同设备的屏幕尺寸。同时,还可以通过CSS伪类(如`:hover`, `:focus`, `:invalid`)来改变用户交互时表单元素的样式,提供视觉反馈。 `images`文件夹...
- CSS中利用百分比单位和Flexbox布局实现自适应布局。 5. **网站结构组织:** - 使用`<header>`、`<main>`、`<section>`、`<footer>`等语义化标签来构建网页结构。 - 通过内部链接(`<a>`)连接不同的部分,提高...
{header: '邮箱', dataIndex: 'email', flex: 1} ], renderTo: Ext.getBody() }); ``` 这将创建一个带有三列的Grid,并将数据从Store填充到对应的列。 5. **添加分页功能** 如果数据量较大,可以添加分页...