Grails:[domainClassName]实例在哪里定义,它是如何使用的?

时间:2015-08-17 00:48:42

标签: grails

我是grails的新手并尝试了解现有代码。

我首先关注一个模块,域类的名称是Employee并尝试理解CRUD。我发现了很多 employeeInstance?.userLastModified ,我想知道如何定义employeeInstance。如果您创建一个Employee Domain类,您是否已自动拥有employeeInstance?它是如何工作的以及问号是什么?

谢谢。

2 个答案:

答案 0 :(得分:1)

?是一个Groovy null-safe运算符 - read here

employeeInstance(取决于Grails的版本)应该是控制器操作的参数(例如def edit(Employee employeeInstance)),并使用HTTP中的id参数从数据库中检索请求。

阅读Grails user guide,这真的很棒。

答案 1 :(得分:1)

您可能在GSP或控制器中看到过employeeInstance。它在控制器方法中定义。您可能会看到这样的控制器:

class EmployeeController {

    def show(long id) {
        def employee = Employee.get(id)

        [employeeInstance: employee]
    }

}

使用employeeInstance的名为 grails-app / employee / show.gsp 的相应GSP页面。

使用Groovy null-safe运算符,您可以对此进行编码:

def date = employeeInstance?.userLastModified

而不是:

def date = null
if(employeeInstance != null) date = employeeInstance?.userLastModified

因为如果employeeInstance为null,那么您的日期变量将设置为null。

我希望您正在阅读Grails文档并随之编写代码。文档接近优秀。通过使用文档,我在学习Grails方面做得很远。