05 - Grails Hello World

Grails Hello World!!! Our first Web Application using Grails

Let’s make some changes to our recently created tutorial application.

Browse your application and create a new controller named “Hello”.

To create a new controller you can:

1. Use the built in Grails Command option:

          

When the grails command line appears, type “create-controller hello

         ”

2. Right click on the Project, select New, Controller, and set the name of the Controller

          .

Once completed, the create-controller command creates a new controller in your project and creates and associated unit test for the controller.

Open the newly created controller and add this line: render "Hello World! This is my tutorial."

package tutorialdemo

class HelloController {
      def index() { 
        render "Hello World! This is my tutorial."
    }
}

Save the file and run your application. Browse to http://localhost:8080/TutorialDemo. The following page should be displayed, listing the new Hello controller, click on it.

          Text Box: package tutorialdemo

class HelloController {

 def index() { 
		render "Hello World! This is my tutorial."
	}
}

Once you click on the HelloController link, you should be redirected to http://localhost:8080/TutorialDemo/hello/index

And the following page should appear, displaying the text that you set to render in the controller class: 

          

Creating Domain Classes

We have now our initial web application, but let’s add more complexity to it. Suppose that our web application has to manage Subscribers.

Let’s create a new domain class called “Subscriber”. You can create domain classes by:

1. Use the built in Grails Command option:

          

When the grails command line appears, type “create-domain-class Subscriber”

          

 

2. Right Click on our application, New, Domain Class and set the name of the Domain Class  

             

 

Once completed, the create-domain-class command creates a new domain class in your project.

           

Open the newly created domain class and add these lines:

String name;
String lastName;
String status;

 

package tutorialdemo

class Subscriber {

    String name;
    String lastName;
    String status;

  static constraints = {
    }
}

 

Creating a Controller for our Subscribers

Now that we have our entity (domain-class) Subscriber, let’s create a controller that will handle all the requests for a Subscriber.

As mentioned before, we can create a new controller by the Groovy Command line tool or by the project explorer, so go ahead and create a controller.

          

 

Create a view called index in the views/subscriber folder

          

 

          

 

Add the following code to the recently created index.gsp file:

<!DOCTYPE html>
<html>
   <head>
      <meta name="layout" content="main"/>
      <title>Render Subscriber Domain Class</title>
   </head>
   <body>
      <h1>Subscriber</h1>
      Name: <g:fieldValue bean="${subscriber}" field="name"/><br/>
      Last Name: <g:fieldValue bean="${subscriber}" field="lastName"/><br/>
      Status: <g:fieldValue bean="${subscriber}" field="status"/><br/>
   </body>
</html>

Now let’s go back to our controller to modify the index action, so we can return a Subscriber entity to the view to be rendered.

Now, let’s modify the Subscriber controller to create a new Subscriber entity and sent it back to the view to be rendered. Add the following lines to the index method:

Subscriber subscriber = new Subscriber(name: 'John', lastName:'Doe', status:"Active")

[subscriber:subscriber]

package tutorialdemo

class SubscriberController {

       def index() {
        Subscriber subscriber = new Subscriber(name: 'John', lastName:'Doe', status:"Active")
        [subscriber:subscriber]
    }
}

So now let’s execute our application and see that we have a new SubscriberController listed, click on it and see the magic of grails happening. A new page displaying the Subscriber information is displayed!

          

Like us on Facebook