已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
play2.0框架快速入门前言目前,ruby on rails及grails等动态脚本语言正发展得如火如荼,而在以java为首的开源最大阵营中,也出现了各种框架。其中最著名的就是play框架。play 框架是一个完整的 web 应用开发框架,覆盖了 web 应用开发的各个方面。它借鉴了流行的 ruby on rails 和 grails 等框架,又有自己独有的优势。具体表现在以下几个方面:其一,通过 play 框架提供的命令行工具,可以快速创建java web 应用。其二,它拥有java 代码动态编译机制,在修改代码之后,不需要重启服务器就可以直接看到修改之后的结果。其三,它还使用 jpa 规范来完成领域对象的持久化,可以很方便的使用不同的关系数据库作为后台存储。其四,它使用 groovy 作为视图层模板使用的表达式语言。模板之间的继承机制避免了重复的代码。总的来说,play 框架非常适合快速创建web 应用开发。本文将为有一定java web框架基础的读者,来重点介绍如何使用play框架来编制一个最简单的信息增删改查应用。一:安装play框架安装play框架前,只需要使用jdk 1.6以上的版本即可,将官网上的play框架下载后解压到某个指定目录下(假设为e:paly-2.0),配置系统环境变量:path中增加e:paly-2.0使用的是eclipse开发工具即可二:开始使用play框架play框架为能让用户快速开始搭建play系统的原型。下面是使用play中创建工程的步骤: 1.win+r,输入cmd,打开cmd控制台 2.切换到要建立工程的目录下,输入play new playtest开始创建playtest工程 3.出现询问工程名字,本例输入playtest (自定义),回车继续,出现选择工程类型选择,这里选择2java 工程(以后可以修改),回车,工程建立完成。(play new pal,其中new表示新建应用,new后的名称则为应用的名称。)三:配置应用 将框架工程导入eclipse我们为了要在eclipse中方便我们的编码,所以需要把play刚为我们建立好的框架工程导入到我们的eclipse中去,所以我们按如下步骤去做:1 使用ctrl-c,先把我们正在运行的应用停止下来。2 切换到刚建立的工程(playtest)目录下,输入play eclipsify,表示要生成能导入eclipse的框架工程,回车等待程序运行完毕。 3.启动eclipse ,然后使用导入工程的方法,把playtest工程导入。 4.play分为开发模式和生产模式两种,而切换的配置在工程下conf/application.conf中:application.mode=dev 生产模式改为:prod主要区别在于开发模式中您无需重启server,每次请求都会查看是否有文件发生改变,改变即编译,这对于传统java ee开发人员无疑是相当敏捷的。而这种方式同样会导致性能下降,所以生产模式中就不会这样了,而是采用预编译机制。四:启动play,运行该工程打开cmd控制台,用cd命令切换到该工程目录下,输入paly run 等待服务启动,然后在浏览器中输入http:/localhost:9000/即可访问刚刚新建的工程,默认首页为play的欢迎页面。- 4.在这个例子中,用的只是hsql,所以打开conf/application.conf文件,将下面的db=mem 语句前的注释符号去掉,表示我们将使用hsql。5.同样,在conf/application.conf文件中,增加如下这行,表示我们将使用play框架自带的crud功能:module.crud=$play.path/modules/crud6.在conf/routes文件中,增加如下这行:*/admin module:crud注意,在play框架中,routes是路由控制器,这行表示,将所有的crud操作都是只有通过 */admin访问的请求,才能实现play自带的crud功能。7.在进行上述修改后,我们再到命令行方式下,运行play eclipse,然后再到eclipse下按f5刷新一下8.如果此时再使用play run,运行会发现暂时还没有更新,因为我们要进行数据层的配置。五:创建员工实体对象和控制层play框架完全遵守mvc分层架构标准,因此我们按照mvc的分层来设计我们的引用。我们先创建员工实体对象和其控制层。首先,在eclipse的corporations工程中,在app/models目录下,新建employee类,代码如下:javaview plaincopy1. packagemodels;2. importjava.util.date;3. importjavax.persistence.*;4. importplay.db.jpa.model;5. entity6. publicclassemployeeextendsmodel7. publicstringfullname;8. publicintegersalary;9. publicdatedateofhire;在play框架中,默认使用的是jpa注解标准,使用entity注解,说明该类是属于实体类,这里都是继承了play自己的模型层基类model,这里由于是示例,只是列出了三个对象的属性。接下来,在app/controllers中,创建员工类的控制层文件,代码如下javaview plaincopy1. packagecontrollers;2. ublicclassemployeesextendscrud/anemptyclass3. 这里看到,控制层文件的命名是employees,使用的是play框架优先约定的命名规则:实体类的复数形式。并且这里继承了play中自带的crud基类的功能,这样,就可以在我们的应用中轻易使用到play自带的crud功能了。现在我们马上来运行下应用,依然输入play run,再在浏览器中输入:http:/localhost:9000/admin这个时候,点add按钮,就可以增加员工了。六:创建部门实体类和部门控制层接下来,我们继续创建部门实体类和部门控制层的文件。同样,在app/models目录下,新建立department类,如下:javaview plaincopy1. packagemodels;importjavax.persistence.*;importplay.db.jpa.model;entitypublicclassdepartmentextendsmodelpublicstringname;publicstringdescription;2. 3. 同样在app/controllers目录下,创建控制层文件departments,代码如下:javaview plaincopy1. packagecontrollers;2. publicclassdepartmentsextendscrud3. 这个时候,再次运行play run,会发现使用http:/localhost:9000/admin时,看到的界面将会比之前的多了能够增加部门实体类,大家可以尝试下。七:建立部门跟员工之间的连接关系现在我们在建立了部门类和员工类后,可以开始建立它们之间的关联关系了。由于一个部门中是有多个员工,所以在员工类employee中,写入如下代码,建立两个类之间的关联:javaview plaincopy1. manytoone2. ublicdepartmentdepartment;这里依然使用了manytoone的jpa注解去实现多对一的关系。在再次运行程序后,会发现,在增加员工时,会出现下拉菜单选择框,让其选择该员工属于哪一个部门。八:建立公司实体类和控制类最后,我们建立公司实体类和控制类。同样,在app/models目录下,建立company类如下:javaview plaincopy1. packagemodels;2. importjavax.persistence.entity;3. importplay.db.jpa.model;4. entity5. publicclasscompanyextendsmodel6. publicstringname;7. publicstringaddress;8. publicbooleanispublic;9. company的控制层类代码如下:javaview plaincopy1. packagecontrollers;2. importmodels.company;3. crud.for(company.class)4. publicclasscompaniesextendscrud5. 这里要提醒一点的是,由于company的复数是companies,而play框架原先约定俗成的是在实体类名后直接加字母s,所以这里使用了注解 crud.for(company.class),以表明该控制类文件companies是为company实体类服务的。同样,一个公司里有许多部门,因此在deparment部门类中,建立如下的多对一关系:javaview plaincopy1. manytoone2. bliccompanycompany;再次运行程序,可以看到,现在三个实体类都建立起来了,可以分别对公司,部门和员工进行crud操作九:优化列表我们在查看每个实体类的列表时,发现在列表中,会把每条记录的id都显示出来,这个在程序中假设不需要看到id字段的话,可以通过修改代码实现,比如在company类中,增加tostring方法即可:javaview plaincopy1. publicstringtostring()2. returnname;而在department和employee类中,可以采用同样的方法,以不显示它们的id字段。十:增加校验规则在输入数据时,校验规则是必不可少的,在play框架中,可以很方便地使用注解来增加校验规则,比如在员工类中,可以要求输入的fullname字段内容不能超过100个字符,而且fullname字段不能为空,则在employee类中,增加如下代码即可:javaview plaincopy1. requiredmaxsize(100)publicstringfullname;下面列出一些常见的校验规则:javaview plaincopy1. email校验email合法性2. infuture检验是否将来的日期3. inpast检验是否是过往的日期4. match对正则表达式的判断5. max最大值6. min最小值7. range检验范围8. url检验是否url十一:改变列表的显示格式在默认情况下,比如查看employee列表,只能看到employee的名称字段,假设要在列表中看到每条记录的每个字段的话,要修改下play的模版,方法如下:1 停止现在的服务,ctrl-c停止。2 在命令行下,输入:play crud:ov template employees/list这将在app/views/employees目录下新建立一个list.html的页面。3 重新输入play run,并切换到eclipse中的项目中,按f5更新页面。4 在eclipse中,打开app/views/employees/list.html,这个是雇员列表的模版文件。5 在该页中,找到id=”crudlisttable”部分,修改为:htmlview plaincopy1. #crud.tablefields:fullname,dateofhire,salary/即显示完整所有字段。6 重新运行程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年特种作业操作证核心考题题库及答案
- 2025年前台接待招聘面试题库及参考答案
- 2025年符合性审查专员招聘面试参考题库及答案
- 铁路集团笔试题库及答案
- 2025年基础护理师招聘面试参考题库及答案
- 盘锦招聘教师考试题库及答案
- 中药医院考试题库及答案
- 2025年营销策略专员招聘面试题库及参考答案
- 2025年新媒体运营经理招聘面试参考题库及答案
- 2025年零售区域经理招聘面试题库及参考答案
- 执业药师考试试题带答案2025年
- 2025内蒙古巴彦淖尔市临河区招聘社区工作者80人笔试考试备考试题及答案解析
- 湖北省武汉市2025年-2026年小学五年级数学期中考试(上,下学期)试卷及答案-共3套
- 2023年的人事档案个人自传集合3篇
- YS/T 517-2009氟化钠
- GB/T 8884-2017食用马铃薯淀粉
- 新概念青少版入门级AUnit8课件
- 医院医疗质量和安全控制指标
- 社团活动检查记录表
- 新种子法解读
- 田英章 刘少英《历代名言帖谱》
评论
0/150
提交评论