2008-10-11 2 views
8

У меня есть класс домена, содержащий пару полей. Я могу получить к ним доступ из моего .gsps. Я хочу добавить метод к классу домена, который я могу вызвать из .gsps (этот метод является своего рода виртуальным полем, это данные не поступают непосредственно из базы данных).Добавление метода в класс домена

Как добавить метод и как его затем вызвать из .gsps?

ответ

11

Чтобы добавить метод, просто напишите его, как и любой другой обычный метод. Он будет доступен на объекте, когда вы его отобразите в своем GSP.

def someMethod() { 
    return "Hello." 
} 

Тогда в вашем GSP.

${myObject.someMethod()} 
6

Если вы хотите, чтобы ваш метод казался более похожим на свойство, сделайте ваш метод методом геттера. Метод, называемый getFullName(), может быть доступен как свойство $ {person.fullName}. Обратите внимание на отсутствие круглых скобок.

+0

Можете ли вы показать, как сделать его методом геттера? – 2014-03-01 08:31:56

4

Рассмотрим класс, как показано ниже

класса Работа {

String jobTitle 
String jobType 
String jobLocation 
String state 



static constraints = { 

    jobTitle nullable : false,size: 0..200 
    jobType nullable : false,size: 0..200 
    jobLocation nullable : false,size: 0..200 
    state nullable : false 


} 



def jsonMap() { 
    [ 
     'jobTitle':"some job title", 
     'jobType':"some jobType", 
     'jobLocation':"some location", 
     'state':"some state" 
    ] 
    } 

}

Вы можете использовать это jsonMap везде, где вы хотите. В gsp тоже как $ {jobObject.jsonMap()}