繁体   English   中英

Play Framework控制器中的通用动作

[英]Generic Action in Play Framework controller

我在网站的两页上有一个请求表:关于我们和联系方式。 在Home控制器中介绍了针对这两种方法的操作。 提交表单后,我调用sendRequest方法,该方法检查表单错误并发送请求。 该方法如下所示:

def sendRequest = Action {implicit request =>
  requestForm.bindFromRequest.fold(
    formWithErrors => {
      BadRequest(views.html.Home.contacts(formWithErrors))
  },
  response => {
    Redirect(routes.HomeController.contacts().flashing("success" -> "OK"))
  }
)

}

在这种方法中,我定义了视图和导航路线。 对于“关于我们”页面,我应该做同样的工作,但请致电给我们查看和浏览路线。

如何创建通用方法并使用具体视图和路由作为参数来调用它?

// if requestForm is a Form[A]

protected def genericMethod(
    view: Form[A] => play.twirl.api.Html, route: play.api.mvc.Call) = 
  Action {implicit request =>
  requestForm.bindFromRequest.fold(
    formWithErrors => {
      BadRequest(view(formWithErrors))
  },
  response => {
    Redirect(route.flashing("success" -> "OK"))
  }
  )
}

def sendRequest = genericMethod(
  views.html.Home.contacts, 
  routes.HomeController.contacts())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM