现在我只是使用params函数来获取已发布到 URL 的数据。
有没有其他方法可以像在 Play Framework 中那样处理 Scalatra 中的表单?Scalatra 是否支持既可用于创建表单又可自动填写表单的对象?
Scalatra 没有提供如此复杂的功能。从难以实施的意义上说,它并不复杂,它的复杂性来自于参与的各方的数量。
首先,您需要 aModel来表示域中的对象,而 Scalatra 默认情况下不提供任何模型库。然后运行时使用此模型将 HTTP 请求中设置的任意字符串转换为某个模型的实例。例如
GET并指定了一个参数 like user.id,则绑定软件将此字符串转换为 type 的对象,User通过其 ID 在数据库中找到。POST,指定三个参数,如,user.name并且user.password未指定a ,则运行时构建一个类型的对象,该对象准备好放入数据库中班级user.birthdayuser.idUserUser.save()UserPUT(或 Scalatra 文档中解释的等价物)并且包含user.idand user.birthday,首先User通过 ID 检索 an,然后更新其生日,最后提供给您的控制器,准备调用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>
注意
User object submitted by this formOnce you have all the pieces put together, you have made up an MVC framework, so what's the point in using a tiny, RESTful software like Scalatra?