qollin
qollin

Reputation: 1281

Adding a method to a domain class

I have a domain class containing a couple of fields. I can access them from my .gsps. I want to add a method to the domain class, which I can call from the .gsps (this method is a kind of virtual field; it's data is not coming directly from the database).

How do I add the method and how can I then call it from the .gsps?

Upvotes: 10

Views: 5459

Answers (3)

Hates_
Hates_

Reputation: 68791

To add a method, just write it out like you would any other regular method. It will be available on the object when you display it in your GSP.

def someMethod() {
  return "Hello."
}

Then in your GSP.

${myObject.someMethod()}

Upvotes: 13

Ramesh
Ramesh

Reputation: 416

Consider class like below

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

}

You can use that jsonMap wherever you want. In gsp too like ${jobObject.jsonMap()}

Upvotes: 4

John Flinchbaugh
John Flinchbaugh

Reputation: 2338

If you want your method to appear to be more like a property, then make your method a getter method. A method called getFullName(), can be accessed like a property as ${person.fullName}. Note the lack of parentheses.

Upvotes: 6

Related Questions