现在我只是使用params
函数来获取已发布到网址的数据。
在Play框架中是否还有其他方式可以处理Scalatra中的表单? Scalatra是否支持可以用于创建表单并自动填充表单的对象?
答案 0 :(得分:4)
Scalatra没有提供如此复杂的功能。它不是复杂的,因为它很难实现,它的复杂性来自于一起玩耍的派对数量。
首先,您需要Model
来表示域中的对象,而Scalatra默认情况下不提供任何模型库。然后,运行时使用此模型将HTTP请求中设置的任意字符串转换为某个模型的实例。例如
GET
并指定类似user.id
的参数,则绑定软件会将此字符串转换为类型User
的对象,该对象在数据库中通过其ID找到。 / LI>
POST
,则指定三个参数,例如user.name
,user.password
和user.birthday
,不指定{{1运行时构建一个类型为user.id
的对象,该对象已准备好放入带有简单User
的DB中 - 如果通过User.save()
中指定的验证(如果有),则提供该对象类User
(或Scalatra文档中说明的等效文件)且包含PUT
和user.id
,则首先按ID检索user.birthday
,然后它的生日会更新,最后可供您的控制器使用,随时可以拨打User
如您所见,这需要运行时中的模型库,绑定库和粘合支持。
要生成HTML表单,您需要一个可以检查模型并为您输出HTML位的帮助程序库。例如,您的图书馆检查User.save()
类,检测到它有三个公共字段User
,name
和password
,并且根据使用{{1作为输入'名称,输出
birthday
请注意
<model>.<property>
对象一旦你把所有部分放在一起,你就构成了一个MVC框架,那么使用像Scalatra这样的小型RESTful软件有什么意义呢?