1.首先在电脑上面安装play,然后配置环境变量path
2.创建play项目,cmd切换到所要创建的目录,play new [projectName];切换为eclipse项目,play eclipsify [projectName] 然后MyEclipse或者Eclipse导入
即可;
3.在Eclipse中启动play项目的方法:在eclipse里面的play项目的生成的eclipse文件夹里面有三个launch文件,鼠标右击 项目名.launch,选择run as即可;
如果想调试项目,debug as启动即可,然后用localhost:9000/[projectName] 访问,在需要访问的项目方法中打断点就可以。
4.application.conf中配置JPA数据源的方式 db=mysql://root:A1hyQEcO@120.25.145.78/ipower 对应的分别是mysql://[用户名]:[密码]@[数据库地址]/[数据库名称]
5.play项目打包方式:play war [项目所在绝对路径] -o [生成的war包名称(包括路径)] 例如:play war F:\Project\ipower -o F:\playProject\ipower.war
另外一种方式是局部刷新:配置中添加 -Dprecompile=yes 即可。 -Dplay.id= -Dapplication.path="${project_loc:ipower}" -Djava.endorsed.dirs="E:/Work/play-1.2.7.2/framework/endorsed" -javaagent:"E:/Work/play-1.2.7.2/framework/play-1.2.7.2.jar""/>
6.play前后台数据交互:后台的conf中的routes是核心配置文件,主要是标示后台action和前台页面的对应方式,风格为rest风格,如下:
# 回复列表 GET /supervisor/plan/PlanAction/planReply supervisor.plan.PlanAction.planReply 表示后台的supervisor/plan路径中的PlanAction文件的planReply方法跳转到前台的supervisor/plan/PlanAction的planReply.html文件
后台如果要向前台传输数据,用方法render(Object ...),参数可以为任意多个object对象。
7.play前台标签库解析:
#{extends 'common/supervisor.html' /} extends指继承的页面,继承页面已经导入的js或css文件子页面不需要再次导入。
#{set title:'方案列表' /} set指自定义set指定的值
#{get 'title' /} get获取指定的set的值
#{include '/supervisor/plan/planLeft.html'/} include指包含的页面
@{'/public/javascripts/jquery-2.0.js'} 导入文件的地址或
标签的action地址,导入css或js文件或添加按钮及链接点击事件的时候会用到
#{list page?.page} #{list planType} list集合遍历,#{/list}结尾
#{if page?.conditions?.typeId == _?.id}#{/if} if标签在满足指定条件时执行,在这里获取对象的属性的时候,需要在前面对象的最后加一个问号(?),比如page?.conditions?.typeId是获取page的conditions属性的typeId属性,if可以和elseif else配合使用
${_?.name} 获取指定对象的name值,这个_?标示前面定义的对象,比如list集合中的一个元素,另外,如果对于一个函数(比如if函数),以#开头,如果仅仅是获取一个数值,以$开头
#{form @supervisor.plan.PlanAction.verify(), method:'POST'} 相当于html页面的 标签,包括action的URL以及提交方式。
8.play1.2.5不兼容1.7,这是会报错 verifyError,这个时候应该在application.conf中添加java.source=1.6即可,同时把项目中的临时生成的class文件删除,比如precomplier和tmp文件夹都删除了。参考(http://stackoverflow.com/questions/6704169/verifyerror-expecting-a-stack-map-frame-in-method-controllers-securesecurity-a)
groovy页面数字保留两位小数(_?.size.toDouble()/1000).toBigDecimal().setScale(2, BigDecimal.ROUND_HALF_UP)