Grails+Flex搭建开发环境
1.创建Grails项目
2.创建Flex项目,通过项目,右击,属性,Flex Build Path中,output folds配置Grails项目的目录,到web-app。output folds url配置Grails启动起来之后的的初始url地址,比如:http://localhost:8080/abcd。
3.Flex要得到所要的数据,通过HTTPServer对象实现,具体代码如下:
这里面只要用相对路径就可以了,自动会加上http://localhost:8080/abcd
这个地方实际上是通过HTTPService发出一个请求,期待返回一个XML结果。
4.通过Grails项目,连接数据库,查询得到结果以XML的形式返回。
处理的controller里面,首先要导入grails.converters.XML类
通过如下的方法处理请求,然后返回一个xml结果。
5.Flex得到XML结果之后
如果得到结果并出发一个事件,
在时间中处理所要的结果
6.注意校验和坏数据的处理。
1.创建Grails项目
2.创建Flex项目,通过项目,右击,属性,Flex Build Path中,output folds配置Grails项目的目录,到web-app。output folds url配置Grails启动起来之后的的初始url地址,比如:http://localhost:8080/abcd。
3.Flex要得到所要的数据,通过HTTPServer对象实现,具体代码如下:
这里面只要用相对路径就可以了,自动会加上http://localhost:8080/abcd
var remoteService:HTTPService = new HTTPService();
remoteService.url ="kaofang/showinfo?rid=1003";
remoteService.resultFormat = "e4x";
remoteService.addEventListener(ResultEvent.RESULT,KaofangResult);
remoteService.send();
这个地方实际上是通过HTTPService发出一个请求,期待返回一个XML结果。
4.通过Grails项目,连接数据库,查询得到结果以XML的形式返回。
处理的controller里面,首先要导入grails.converters.XML类
import grails.converters.XML
通过如下的方法处理请求,然后返回一个xml结果。
def showinfo = {
def kaofangInstance = Kaofang.findByRid(params.rid)
//def message=new Message()
if(kaofangInstance != null){
//message.obj=kaofangInstance
render(contentType:"text/xml",encoding:"UTF-8"){
message{
result{
code("100")
description('Success')
kaofang{
mingCheng(kaofangInstance.mingCheng)
faQiRen(kaofangInstance.faQiRen)
createTime(kaofangInstance.createTime)
rid(kaofangInstance.rid)
yongDi(kaofangInstance.yongDi)
xianJin(kaofangInstance.xianJin)
address(kaofangInstance.address)
shuLiang(kaofangInstance.shuLiang)
zhanDiMianJi(kaofangInstance.zhanDiMianJi)
fuGaiMianji(kaofangInstance.fuGaiMianji)
img(kaofangInstance.img)
zongZaoJia(kaofangInstance.zongZaoJia)
sheXiangTou(kaofangInstance.sheXiangTou)
}
}
}
} //message as XML
}
else{
render(contentType:"text/xml",encoding:"UTF-8"){
message{
result{
code("-100")
description("")
}
}
}
}
}
5.Flex得到XML结果之后
remoteService.addEventListener(ResultEvent.RESULT,KaofangResult);
如果得到结果并出发一个事件,
在时间中处理所要的结果
private function KaofangResult(event:ResultEvent):void{
var resultXML:XML = event.result as XML;
if(resultXML..code==100){
kaofangInfo.infoTitle.text=resultXML..mingCheng;
kaofangInfo.Kaofangimg.source="assets/kaof.png";
kaofangInfo.cjsj.text=resultXML..createTime;
kaofangInfo.infos=resultXML..sheXiangTou;
kaofangInfo.didian.text=resultXML..address;
kaofangInfo.faqiren.text=resultXML..faQiRen;
kaofangInfo.fgmj.text=resultXML..fuGaiMianji+" 亩";
//kaofangInfo.jsydhg.text=resultXML..yongDi+" 亩";
kaofangInfo.kfsl.text=resultXML..shuLiang+" 座";
kaofangInfo.xianjin.text=resultXML..xianJin+" 万元";
kaofangInfo.shexiangtou.text=resultXML..sheXiangTou+" 个"
kaofangInfo.zongtouzi.text=resultXML..zongZaoJia+" 万元";
}else{
Alert.show(resultXML..description);
}
}
6.注意校验和坏数据的处理。