快速业务通道

精通Grails: Grails服务和Google地图 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
,而 CVG(俄亥俄州辛 辛那提机场,Cincinnati,Ohio airport)则在肯塔基州的佛罗伦萨市(Florence)。将这两个字段留在 create.gsp 里,其余的删除。现在 create.gsp 如清单 7 所示:

清单 7. 修改 create.gsp

<g:form action="save" method="post" >   <div class="dialog">    <table>     <tbody>      <tr class="prop">       <td valign="top" class="name"><label for="iata">Iata:</label></td>       <td valign="top"         class="value ${hasErrors(bean:airport,field:''iata'',''errors'')}">         <input type="text"            maxlength="3"            id="iata"            name="iata"            value="${fieldValue(bean:airport,field:''iata'')}"/>       </td>      </tr>      <tr class="prop">       <td valign="top" class="name"><label for="city">City:</label></td>       <td valign="top"         class="value ${hasErrors(bean:airport,field:''city'',''errors'')}">         <input type="text"            id="city"            name="city"            value="${fieldValue(bean:airport,field:''city'')}"/>       </td>      </tr>     </tbody>    </table>   </div>   <div class="buttons">    <span class="button"><input class="save" type="submit" value="Create" /></span>   </div> </g:form>

图 2 展示了所产生的表单:

图 2. 创建 Airport 表单

精通Grails: Grails服务和Google地图 - 编程入门网

精通Grails: Grails服务和Google地图(5)

时间:2011-07-29 IBM Scott Davis

该表提交到 AirportController 中的 save 闭包。将清单 8 中的代码添加到控制器,以在保存新的 Airport 之前调用 geocodeAirport:

清单 8. 修改 save 闭包

def save = {    def results = geocoderService.geocodeAirport(params.iata)    def airport = new Airport(params + results)    if(!airport.hasErrors() && airport.save()) {      flash.message = "Airport ${airport.id} created"      redirect(action:show,id:airport.id)    }    else {      render(view:''create'',model:[airport:airport])    } }

如果在命令提示处输入 grails generate-controller Airport,方法的主要部分将与您所看到的一样 。仅仅是开始的两行与默认生成的闭包不同。第一行从 geocoder 服务获得一个 HashMap。第二行将 results HashMap 和 params HashMap 合并起来(当然,在 Groovy 中合并两个 HashMap 就像把它们添 加到一起一样简单)。

如果数据库保存成功的话,将重定向到显示操作。幸运的是,不需要更改 show.gsp,如图 3 所示:

图 3. 显示 Airport 表单

精通Grails: Grails服务和Google地图 - 编程入门网

要编辑 Airport,必须保持 iata 和 city 字段在 edit.gsp 中不变。您可以从 show.gsp 复制和粘 贴其余的字段,把它们变为只读字段(或

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号