java - Play Framework 2.0.X 中的邮件表单

标签 java model-view-controller playframework playframework-2.0

我正在使用 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/

相关文章:

java - 当我更改 SWT 中按钮的文本时,整个按钮的大小会发生变化。我怎样才能禁用这个功能?

java - JList 找出哪个项目被点击

java - 如何将另一个项目中的项目作为模块使用?

model-view-controller - 从 HtmlHelper 获取对象实例

Ruby on Rails 教程中的 SQL 插值

ajax - Play 服务器发送的 JSON 响应格式错误

java - 在 Windows 7 中运行 Play 应用程序时为 "RuntimeException: Problems with NPM resolution"

java - Kotlin BigInteger 到 BigDecimal 转换

javascript - 如何根据主干模型的响应创建/更新主干 View ?

exception - Play 框架中抛出的无法解释的 ClassCastException