2008-10-11 36 views
8

Tôi có một lớp miền có chứa một vài trường. Tôi có thể truy cập chúng từ .gsps của tôi. Tôi muốn thêm một phương thức vào lớp miền, mà tôi có thể gọi từ .gsps (phương thức này là một loại trường ảo; dữ liệu của nó không đến trực tiếp từ cơ sở dữ liệu).Thêm phương thức vào một lớp miền

Làm cách nào để thêm phương thức và sau đó làm cách nào để gọi phương thức đó từ .gsps?

Trả lời

11

Để thêm phương thức, chỉ cần viết phương pháp như bạn thực hiện với bất kỳ phương pháp thông thường nào khác. Nó sẽ có sẵn trên đối tượng khi bạn hiển thị nó trong GSP của bạn.

def someMethod() { 
    return "Hello." 
} 

Sau đó, trong GSP của bạn.

${myObject.someMethod()} 
6

Nếu bạn muốn phương thức của mình trông giống một thuộc tính hơn, thì làm cho phương pháp của bạn trở thành phương thức getter. Một phương thức có tên là getFullName(), có thể được truy cập như một thuộc tính như $ {person.fullName}. Lưu ý thiếu dấu ngoặc đơn.

+0

Bạn có thể chỉ cách làm cho nó trở thành phương thức getter không? –

+0

Tôi nghĩ rằng bạn chỉ đơn thuần là đặt một cái ở phía trước, tức là 'def getSomeMethod()'. –

4

xem xét lớp như dưới đây

lớp Job {

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" 
    ] 
    } 

}

Bạn có thể sử dụng bất cứ nơi nào bạn muốn jsonMap. Trong gsp cũng giống như $ {jobObject.jsonMap()}

Các vấn đề liên quan