升級Play1.2后,原來的waitFor方法不建議使用了,等待任務(wù)這塊代碼似乎更簡潔了,用await基本能搞定大部分的事,具體參考:
升級Play1.2后,可能會遇到某些字如“公”、“者”等在頁面上顯示為問號的中文亂碼問題。
- 這個已經(jīng)在最新的代碼中修改了,急用的話,可以git下載最新的master版本編譯后使用。目前1.2.1版本已經(jīng)修復(fù)了這個問題。
- 同時在windows系統(tǒng)中的cmd窗口里,控制臺輸出的中文也可能是亂碼,這個可能是因為我們使用的Windows的cmd默認(rèn)編碼不是UTF-8,而是GBK吧,還沒找到好辦法解決。
當(dāng)在Windows開發(fā)后轉(zhuǎn)到Linux下時會出現(xiàn)的問題:
- MySQL表名字段大小寫問題的解決辦法:
1. linux的服務(wù)器上,修改/etc/my.cnf,在[mysqld]段加上: lower_case_table_names=1 2. 再運行建表sql腳本。 3. 這樣將始終采用小寫的表名。當(dāng)這個值設(shè)為0時則為大小寫敏感。
開發(fā)或產(chǎn)品的日志log如何設(shè)置?
Play的模板機(jī)制
- 在Controller中盡量使用 render()自動判斷, 系統(tǒng)會根據(jù)請求的不同來返回不同的格式,有 *.html,有 *.json,甚至還可以是 *.xml,只需在相應(yīng)的view目錄中寫好相應(yīng)的*.html、*.json、*.xml 同名模板。
如何重載一個CRUD的界面?
Play官方網(wǎng)站訪問不了了怎么辦?
- 2010年11月23日發(fā)生了這么一次。
- 你可以在本地查看Play的文檔,在Play的安裝目錄里有API等文檔。
- 另外你需要下載的話,可以去這個http://ayframework.org/ 地址,因為它在另一臺服務(wù)器上。
如何自定義一個Check驗證的注釋功能?
如何在項目全局使用一個字串或設(shè)置?
- 在application.conf文件中添加一項,如:global.set01=SET01;
- 在java程序中使用:Play.configuration.getProperty("global.set01") 即可取得。
如何在類中進(jìn)行數(shù)據(jù)操作、事務(wù)等?
如何使用自定義的類型或字段作為某個類的主鍵?
- 參見:The play.db.jpa.Model class automatically provides an autogenerated Long id field. We think that it’s generally a good idea to keep an auto-generated Long id as primary key for JPA models (the technical primary key) and manage your functional primary key using another field.
- 官方文檔中說明使用Play提供的自動自增長的長整數(shù)就可以了,所以建議不要自己維護(hù)主鍵,如果因業(yè)務(wù)需要自己維護(hù)主鍵,也可以保留這個,另外處理自己的主鍵程序邏輯。
界面上的幾種表示方法區(qū)別:
- #{script 'jquery.js'} 模板或Tags,可自定義。
- ${client?.name} 表達(dá)式,來源于Groovy和Grails的語法。
- @{Clients.index()} 生成Action鏈接,@@{Clients.index()}生成的是絕對地址。
- &{'clientName', client.name} i18n的Messages語言文本轉(zhuǎn)換。
- %{…}% 直接執(zhí)行的代碼,類似ASP里的<%...%>
- *{…}* 服務(wù)器端注釋,類似ASP里<%'.....%>
- 詳細(xì)說明見:http://www./documentation/1.1/templates
建Model時可用的注釋聲明:
- 設(shè)置某個字段不存入數(shù)據(jù)表:
@Transient public String info;
如何顯示某個類的列表數(shù)據(jù)在頁面上:
- 參見:http://www./documentation/1.1/guide9
public static void index() { List<Post> posts = Post.find("author.email", Security.connected()).fetch(); render(posts); } 然后在模板頁面上這樣列出: #{list items:posts, as:'post'} <p class="post ${post_parity}"> <a >${post.title}</a> </p> #{/list}
如何將Play運行在Windows Server上,當(dāng)做一個服務(wù)啟動?
- 在項目目錄下運行play run 即可。
- 下載個srvany.zip 包,里面三個文件:instsrv.exe,srvany.exe,srvany.wri
- srvany.wri 文件里是英文的使用說明。
- 拷貝instsrv.exe, srvany.exe 文件到 C:\tools\srvany.exe
- 運行 instsrv MyService c:\tools\srvany.exe
- 在注冊表里HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService: 添加一個 'Parameters' 的Key。
- 在這個鍵值下面添加:Application: REG_SZ: D:\your\play\play.bat start E:\your\play\projectpath\
- 詳細(xì)創(chuàng)建Windows下服務(wù)的方法參見:http://www./display.cfm?ttid=197
相關(guān)文章
同時在windows系統(tǒng)中的cmd窗口里,控制臺輸出的中文也可能是亂碼,這個可能是因為我們使用的Windows的cmd默認(rèn)編碼不是UTF-8,而是GBK吧,還沒找到好辦法解決。同時在windows系統(tǒng)中的cmd窗口里,控制臺輸出的中文也可能是亂碼,這個可能是因為我們使用的Windows的cmd默認(rèn)編碼不是UTF-8,而是GBK吧,還沒找到好辦法解決。
注釋掉 application.py 的241行,在Run的時候加上 -Dfile.encoding=GBK
|