我正在使用 Play Framework (2.0.4),我想知道创建带有发送电子邮件表单的页面的最佳方法是什么。我知道有一个用于发送电子邮件的插件,所以这不是问题 - 我可以使用发送电子邮件的方法编写 Controller 。
我的问题更多是关于我应该提供的操作(在路由文件中)。我应该创建一个接受参数(发件人姓名、发件人电子邮件、主题、正文)的 POST 操作吗?或者我应该以某种方式创建一个模型对象,该对象将填充到表单中并传递给 Controller 中的操作?最佳实践是什么?以及如何正确粘合它( Action 在路由文件中应该是什么样子, View 应该是什么样子)?
最佳答案
您需要两个 View - 一个是表单(我们称之为 mailForm
),第二个是邮件的正文( bodyHtml
)。 (如果您想发送 HTML 和 TXT 版本,您可以选择创建 bodyTxt
。
专用模型将是好 helper ,因为它将帮助您使用Play的Form<T>
,如果需要,您还可以将发送的消息存储在数据库中。无论如何,您也可以在字符串映射上进行操作 - 特别是如果您计划制作许多动态表单(具有未知数量的字段)。
填写表格后,它将转到示例 sendEmail()
操作,您需要填写表单( bindFromRequest
),最终创建对象并保存到数据库,最后作为参数传递给 bodyHtml View 。当然,您不应该将渲染的 View 作为操作的结果返回,而应该将其与 toString 一起使用 - 通过邮件程序发送它。该操作应返回重定向到某个“谢谢”页面。仅此而已。
注意:写得很快,如果有不清楚的地方,请告诉我......
关于java - Play Framework 2.0.X 中的邮件表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370404/