表單(form)是最常見的從客戶往伺服器傳遞資料的方式。play框架提供了一些工具。它們可以從表單中提取資料,驗證提交資料的合法性,或者在檢視中顯示表單。我先來介紹最簡單的使用表單提交資料的方式。
doctype html>
<
html
>
<
body
>
<
form
method
="post"
action
="/postform"
>
<
input
type
="text"
name
="content"
>
input
>
<
input
type
="submit"
>
input
>
form
>
body
>
html
>
public在routes中增加導航static
result form()
頁面如下:
dynamicform和form都來自play.data。form.form().bindformrequest()從請求中提取表單資訊,並放入到dynamicform型別的in物件中。
我上面用get()方法,來提取表單中不同名字的輸入欄。比如上面的"content"。postform()動作把表單中填寫的內容直接顯示。
增加routes記錄
在/form的頁面下輸入任意字串並提交,檢視效果。
我介紹了表單最基本的使用方式。下面了解play框架提供的其它的表單工具。
在動作內部,可以建立乙個物件來指代表單。表單的每個輸入欄為表單物件的乙個屬性。我可以通過增加標註(annotation)的方法,驗證表單的輸入(form validation)。
doctype html這個表單有三個輸入欄,名字分別為email, password和comment。>
<
html
>
<
body
>
<
form
method
="post"
action
="/postform"
>
<
label
label
>
<
input
type
="email"
name
="email"
>
<
label
>password
label
>
<
input
type
="password"
name
="password"
>
<
label
>comment
label
>
<
input
type
="text"
name
="comment"
>
<
input
type
="submit"
>
form
>
body
>
html
>
packageuser類指代乙個表單的資料。我還為兩個屬性增加了標註。play伺服器可以據此驗證輸入的合法性。比如@email的限定就要求輸入為"*@*"的形式。@required則要求輸入欄不為空。如果違反這些限定,那麼play將丟擲異常。util;
import
play.data.validation.constraints.email;
import
play.data.validation.constraints.required;
public
class
user
修改動作postform()。user類的物件user用來儲存表單資料。
public最後的ok()中呼叫了表單物件中儲存的資料。static
result postform()
分別輸入合法和不合法的資料,觀察play返回的頁面。
我上面手動建立模板中的表單,並保持檢視中的表單和表單物件一致。我還可以在模板中直接呼叫表單物件。這樣做,能讓檢視中的表單和表單物件自動的保持一致。
修改form.scala.html為
@(userform: form[util.user])這裡使用了play所提供的helper工具。helper可以在表單中增加表單form,再加入不同型別的輸入欄,比如inputtext和inputpassword。doctype html
>
<
html
>
<
body
>
@helper.inputtext(userform("email"))
@helper.inputpassword(userform("password"))
@helper.inputtext(userform("comment"))
<
input
type
="submit"
>}
body
>
html
>
修改原有的動作form()
public這裡,表單物件作為引數傳遞給模板。最後的html頁面中的表單,將由play自動生成。 表單static
result form()
資料提交
TinkPHP框架學習 04命名空間
1 命名空間 2 呼叫其他控制器的方法 3 u 函式 一命名空間 看做是虛擬目錄 thinkphp library 初始命名空間 在library資料夾下的所有資料夾都稱作根命名空間,由兩部分構成 1.library目錄下的所有資料夾 2.應用程式目錄裡面的模組名 定義當前類的命名空間 namesp...
Python學習筆記 04 Django框架簡介
目錄1 什麼是django?2 django框架的開發環境搭建3 django操作mysql資料庫簡介4 功能強大的django管理工具應用 django是應用於web開發的高階動態語言框架,最初起源於美國芝加哥的python使用者組,具有新聞從業背景的adrian holovaty是django框...
Python學習筆記 04 Django框架簡介
目錄1 什麼是django?2 django框架的開發環境搭建3 django操作mysql資料庫簡介4 功能強大的django管理工具應用 django是應用於web開發的高階動態語言框架,最初起源於美國芝加哥的python使用者組,具有新聞從業背景的adrian holovaty是django框...