【问题标题】:errors in Grails serviceGrails 服务中的错误
【发布时间】:2015-10-11 19:38:04
【问题描述】:

我是 Grails 的新手,我正在使用 Grails 2.5.1,我正在创建一个服务,但是当我调用这个服务时,我得到了以下错误:

Class:groovy.lang.MissingPropertyExceptionMessage:No such property: flash for class: com.sherif.UtilsService Possible solutions: class

Class:groovy.lang.MissingMethodExceptionMessage:No signature of method: com.sherif.UtilsService.render() is applicable for argument types: (java.util.LinkedHashMap) values: [[view:forget]] Possible solutions: every(), find(), find(groovy.lang.Closure), every(groovy.lang.Closure)

这是我的服务:

class UtilsService {

def sendPassword(params) {

    def enteredCeredintials = User.findByEmail(params?.email)
    if (enteredCeredintials?.email==null) {
        flash.message = message(code: 'user.email.notfound', args: [params?.email])

    }
    else {
        flash.message = message(code: 'user.passwordSent', args: [params?.email])
        }
 render (view: "forget")
}
}

什么可能导致这些错误?

谢谢

【问题讨论】:

    标签: grails


    【解决方案1】:

    flash 是 Web 层中使用的临时存储 - 它是控制器中可用的隐式变量之一,还有 requestresponsesession 等。但它在服务中不可用 - 那里服务中没有隐式变量。

    理想情况下,您应该将每一层分开。服务不应该与 Web 层一起工作或了解 Web 层 - 它们是使用业务逻辑执行各种任务、使用数据库等的辅助类。它们由控制器调用,但不应被 Web 污染层概念。

    要解决此问题,请提取独立于 Web 层的逻辑并在服务中执行该工作。然后返回在控制器中渲染视图所需的任何数据,在这种情况下,还要在flash 范围内存储一些数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      相关资源
      最近更新 更多