play 从官网下载 解压,然后环境变量设置一下
1 shell:/play new zms 新建项目
2 play run(start) zms 就启动了, run的话控制台窗口不能关闭。 start 则是后台启动,控制台看不到日志
3 习惯用eclipse 或者myeclipse开发,则可以 把工程转为eclipse格式的
cd zms:/play eclipsify 然后用eclpse/myeclipse import即可,引入后在 eclipse文件夹有个zms.launch文件 又键 run as 即可启动
4 修改文件后不需要刷新,不需要重启服务,由于myeclipse写前台界面很垃圾,我一般是再开一个webstorm,以前写普通的ssh程序,
在webstorm修改后,需要在myeclipse里刷新一下, 页面才生效,下载不需要跑myeclipse里刷新
5 如果喜欢用tomcat 也可以吧 项目打包成tomcat
5.1 打包
cd D:\play-1.2.7
play war com.shovesoft.sp2p --exclude .idea:.svn:.settings:logs:tmp:test:test-result:.classpath:.project-o c:\z2.war
--exclude 这一段可选,表示不把这些文件夹打包
5.2 如何发布到tomcat
1 把tomcat webapps\Root下所有文件删除
2 打包
shell:>play war com.shovesoft.sp2p -o d:\tomcat7-play\webapps\ROOT\x.war
3 把 x.war下的web-inf整个剪切到 Root根
4 然后把 x.war删除
5 启动tomcat
6访问可能报错,我们把tomcat修改一下 catalina.bat或者 linux catalina.sh
windows tomcat7的话 在188行 后面加 rem ----- Execute The Requested Command ---------------------------------------
set JAVA_OPTS= -XX:-UseSplitVerifier -Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m
linux tomcat 是 237行 # ----- Execute The Requested Command -----------------------------------------
JAVA_OPTS='-server -XX:-UseSplitVerifier -Xms2048m -Xmx2048m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=512m'
6 play 操作cookies
session.put 操作的不是cookies,浏览器重启后 无法用session.get到
必须:
//写cookies
Cookie cookie=new Cookie();
cookie.name="userid";
cookie.value=String.valueOf(422);
cookie.maxAge=365*24*60*60;
//添加进cookiess key可以随便写
response.cookies.put("real", cookie);
读: String userid=request.get().cookies.get("userid").value;
7 play 控制台 乱码
play/framework/pym/play/application.py 修改第262行 utf-8改为 GBK
java_args.append('-Dfile.encoding=GBK')
8 play 页面报错 提示显示乱码
貌似是该jettry里一个 jar里的一个配置文件 设置 zh_CN 为utf-8 忘记怎么改了,下次再补充
9 fllush.put 作用范围
作用范围是本页和下一个 链接 的页面 可以访问, 比如 登录界面,登录,后台验证失败后,返回给登录界面flush.put("username"),登录界面直接 ${flush.get("username")}可取出来
10 启动报 VerifyError 错误
听说是 jdk7类型推导 验证之类的不通过,
解决: 系统jdk设为1.7 ,工程编译级别1.7
修改 com.shovesoft.sp2p.launch文件 加 -XX:-UseSplitVerifier
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XX:-UseSplitVerifier -Xms2048M
11 debug as 无法启动
提示 Jvm启动了2次 Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options
解决: 将-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 去掉。
12 前台遍历 list 取索引
%{int i=1;}%
#{list items:bills,as :'bill'}
<tr>
<td> ${i} </td>
</tr>
%{i++}%
#{/list}
或者:
#{list items:pageBean.page, as:'bid'}
#{if bid_index<1}
<div class="invtentsItem" style="margin-top:0">
#{/if}
#{else}
<div class="invtentsItem" >
#{/else}
#{/list}
13 前台格式化
<td> ${bill.repayment_time.format('yyyy-MM-dd')} </td>
${_?.capital_interest_sum?.format('###,##0.00')}
筹款金额: ${ bid.amount.format('##,###0')}元
这样也可以 #{format money:(bid.amount-bid.has_invested_amount) }#{/format}