flex和后端的数据交互(二)--<mx:request/>和<mx:form/>

本文介绍如何使用Flex的mx:request标签简化服务器请求参数的添加,并展示了如何利用Flex内置的验证组件进行数据验证。
用actionscript给服务器请求添加参数难免会很麻烦,使用mx:request标签就可以解决这一问题,可以把他
嵌套到HTTPService标签中实现参数的提交。如下例所示:

<mx:request>
<txtPara>{txtPara.text}</txtPara>
</mx:request>

其中txtPara是发送到服务器端参数的名城,标签体是参数值,而标签体的值就是下方文本框的值。
以下是完整的mxml文件:

<?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;
import mx.controls.Alert;
private function httpHandle(e:ResultEvent):void
{
Alert.show(e.result.Result);
}
]]>
</mx:Script>
<mx:HTTPService id="myHttp" url="http://localhost:8080/myflex/http" showBusyCursor="true" result="httpHandle(event);" useProxy="false">
<mx:request>
<txtPara>{txtPara.text}</txtPara>
</mx:request>
</mx:HTTPService>
<mx:Panel title="TEST HTTPService" width="368" height="140" x="78" y="30" layout="absolute">
<mx:Label text="PARA" x="110" y="26"/>
<mx:TextInput id="txtPara" x="161" y="24" width="95"/>
<mx:Label text="The para sent to service is:" x="58" y="53"/>
<mx:Label x="126" y="53" id="lblResult"/>
<mx:Button label="Submit" click="myHttp.send()" x="277" y="53"/>
</mx:Panel>
</mx:Application>


在服务器端就可以从request中取到txtPara参数的值,这里没有做过多处理,只是在后端取到这个值又通过xml形式返还到客户端。
这是例子运行的截图:
[img]http://daoger.iteye.com/upload/picture/pic/16361/15ab0bd9-09cf-348a-b70e-633b21828fa4.jpg[/img]

mx:request组件一般是结合mx:form组件一起使用,flex提供了完备的数据校验功能,如对字符串的校验mx:StringValidator、
对电话号码验证的mx:PhoneNumberValidator、对日期验证的mx:DateValidator、对电子邮件验证的mx:EmailValidator、对邮编验证
的mx:ZipCodeValidator等等。下面这个示例来自Flex的在线文档,主要展示flex的form验证功能,没有数据的提交。


<?xml version="1.0" encoding="utf-8"?>
<!-- Simple example to demonstrate Form layout container. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Panel title="Form Container Example" height="75%" width="75%"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">
<mx:Text width="100%" color="blue"
text="Moving from one form field to another triggers the validator."/>
<mx:Form width="100%" height="100%">
<mx:FormHeading label="Enter values into the form."/>
<mx:FormItem label="First name">
<mx:TextInput id="fname" width="200"/>
</mx:FormItem>
<mx:FormItem label="Date of birth (mm/dd/yyyy)">
<mx:TextInput id="dob" width="200"/>
</mx:FormItem>
<mx:FormItem label="E-mail address">
<mx:TextInput id="email" width="200"/>
</mx:FormItem>
<mx:FormItem label="Age">
<mx:TextInput id="age" width="200"/>
</mx:FormItem>
<mx:FormItem label="SSN">
<mx:TextInput id="ssn" width="200"/>
</mx:FormItem>
<mx:FormItem label="Zip">
<mx:TextInput id="zip" width="200"/>
</mx:FormItem>
<mx:FormItem label="Phone">
<mx:TextInput id="phone" width="200"/>
</mx:FormItem>
</mx:Form>
</mx:Panel>

<mx:StringValidator source="{fname}" property="text" minLength="4" maxLength="12"/>
<mx:PhoneNumberValidator source="{phone}" property="text"/>
<mx:DateValidator source="{dob}" property="text"/>
<mx:EmailValidator source="{email}" property="text"/>
<mx:NumberValidator source="{age}" property="text" integerError="Enter Integer value"
minValue="18" maxValue="100" domain="int"/>
<mx:SocialSecurityValidator source="{ssn}" property="text"/>
<mx:ZipCodeValidator source="{zip}" property="text"/>
</mx:Application>

示例运行的截图:
[img]http://daoger.iteye.com/upload/picture/pic/16363/5a079d1a-69b8-30db-8bf6-a251fe856f6e.jpg[/img]

其他一些入门例子可以参考:甘先生Blog [url]http://www.blogjava.net/gump/articles/22859.html[/url]
更多问题请参考Flex的在线文档:[url]http://www.adobe.com/support/documentation/en/flex/[/url]
<el-form :model="projectInfo" label-width="120px" class="project-form"> <el-row :gutter="20"> <el-col :span="8"> <el-form-item label="项目名称:"> <el-input v-model="projectInfo.name" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="项目编码:"> <el-input v-model="projectInfo.code" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="采集目的:"> <el-input v-model="projectInfo.purpose" /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="8"> <el-form-item label="参与者姓名:"> <el-input v-model="projectInfo.participantName" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="参与者手机:"> <el-input v-model="projectInfo.participantPhone" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="设备名称:"> <el-input v-model="projectInfo.deviceName" /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="8"> <el-form-item label="设备类型:"> <el-input v-model="projectInfo.deviceType" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="采集文件号:"> <el-input v-model="projectInfo.collectionFileNumber" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="设备类别:"> <el-input v-model="projectInfo.deviceCategory" /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="8"> <el-form-item label="开始时间:"> <el-input v-model="projectInfo.startTime" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="业务与场景:"> <el-input v-model="projectInfo.businessScene" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="采集地域:"> <el-input v-model="projectInfo.collectionRegion" /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="8"> <el-form-item label="数据文件名:"> <el-input v-model="projectInfo.dataFileName" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="上传来源:"> <el-input v-model="projectInfo.uploadSource" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="QT报告:"> <el-input v-model="projectInfo.qtReport" /> </el-form-item> </el-col> </el-row> </el-form> 不用这种col row的写法
09-18
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值