我是grails的新手并尝试了解现有代码。
我首先关注一个模块,域类的名称是Employee并尝试理解CRUD。我发现了很多 employeeInstance?.userLastModified ,我想知道如何定义employeeInstance。如果您创建一个Employee Domain类,您是否已自动拥有employeeInstance?它是如何工作的以及问号是什么?
谢谢。
答案 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方面做得很远。