Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Playframework 将java映射传递给视图而不是表单好吗?_Playframework_Playframework 2.3 - Fatal编程技术网

Playframework 将java映射传递给视图而不是表单好吗?

Playframework 将java映射传递给视图而不是表单好吗?,playframework,playframework-2.3,Playframework,Playframework 2.3,那么最佳实践呢?好吗?或者更好的方法是使用任何表单包装器查看传递模型?你怎么看?这实际上取决于你的用例。传递模型实例和封装在表单中的模型实例都有各自的优点 正如Kris指出的,拥有表单可以让您访问验证错误等等。 另一方面,使用模型实例直接从模型访问字段当然要简单得多 请不要只传递一些带有数据的映射(比如Map[String,Object])-如果你能处理对象,那么就这样做,这就是面向对象的思想 总之:如果模板处理表单操作(编辑、提交等)-请使用包装在表单中的模型。如果您只想显示一些数据或类似数据

那么最佳实践呢?好吗?或者更好的方法是使用任何表单包装器查看传递模型?你怎么看?

这实际上取决于你的用例。传递模型实例和封装在表单中的模型实例都有各自的优点

正如Kris指出的,拥有表单可以让您访问验证错误等等。 另一方面,使用模型实例直接从模型访问字段当然要简单得多

请不要只传递一些带有数据的映射(比如
Map[String,Object]
)-如果你能处理对象,那么就这样做,这就是面向对象的思想


总之:如果模板处理表单操作(编辑、提交等)-请使用包装在表单中的模型。如果您只想显示一些数据或类似数据,请抓取您的模型实例并将其提供给视图,而无需任何额外开销。

另一个选项是使用standanlone HTML 5应用程序返回HTML页面,并使用play进行其他服务器端处理(访问数据库、控制业务逻辑等)


您可以在前端和后端之间获得更好的分离。

我很难理解“使用任何表单包装器传递模型以查看”的含义。您可以将任何对象传递给render()方法。它可以是模型或表单(或DynamicForm)instanceRight。我同时使用纯模型和包装在表单中的模型。包装在表单中的优点是可以访问验证错误,例如
Form.globalErrors
中的全局错误。另一方面,使用纯模型时,模型的字段更容易访问:
myModel.myField
form(myField).value
相比,它看起来更干净一些。