3
現在我只使用params
函數來獲取已發佈到URL的數據。有沒有一種好方法來處理Scalatra中的表單提交
有沒有其他的方式來處理Scalatra中的表單,就像在Play框架中一樣? Scalatra是否支持可用於創建表單並自動填寫表單的對象?
現在我只使用params
函數來獲取已發佈到URL的數據。有沒有一種好方法來處理Scalatra中的表單提交
有沒有其他的方式來處理Scalatra中的表單,就像在Play框架中一樣? Scalatra是否支持可用於創建表單並自動填寫表單的對象?
Scalatra不提供這樣一個複雜的功能。這不是複合從它的難以實現,它的複雜性來自派對的數量一起玩。
首先,您需要一個Model
來表示您的域中的對象,並且默認情況下Scalatra不提供任何模型庫。運行時使用此模型將HTTP請求中設置的任意字符串轉換爲某個模型的實例。例如
GET
並指定像user.id
一個參數,所述結合軟件此字符串User
類型的對象,在由它的ID數據庫中找到轉換。POST
,規定了三個參數,如user.name
,user.password
和user.birthday
並執行不指定user.id
,運行時構建User
類型的一個對象,它已準備好被放置在DB用簡單User.save()
- 提供,如果通過了驗證,如果有的話,在User
類PUT
(或等同於Scalatra的文檔解釋),幷包含user.id
和user.birthday
,第一一個User
由ID檢索,那麼它的生日更新並最終可用Ø控制器,準備打電話User.save()
正如你所看到的,這需要一個模型庫,具有約束力的圖書館,並在運行時膠水的支持。
要生成HTML表單,您需要一個輔助函數庫,可以檢查模型併爲您輸出HTML位。例如,你的圖書館考察User
類,檢測到它有三個公共領域name
,password
和birthday
,並根據使用<model>.<property>
作爲輸入姓名的慣例,輸出
<form action="$$$$" method="$$$$">
<input name="user.name" />
<input name="user.password" />
<input name="user.birthday" />
<input type="submit" />
</form>
注意
一些上下文被學習(例如路由)一旦你所有的作品放在一起,你已經做出了一個MVC框架,有啥使用像Scalatra的一個微小的,基於REST的軟件呢?