{"id":27189,"date":"2015-09-18T12:11:58","date_gmt":"2015-09-18T09:11:58","guid":{"rendered":"http:\/\/examples.javacodegeeks.com\/?p=27189"},"modified":"2023-11-09T15:10:58","modified_gmt":"2023-11-09T13:10:58","slug":"grails-tutorial-for-beginners","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/","title":{"rendered":"Grails tutorial for beginners"},"content":{"rendered":"<p><strong>Grails<\/strong> is an open source framework based on Groovy and Java. It also supports MVC architecture to\u00a0for developing web application.<\/p>\n<p>This tutorial will describe more details about Grails and represent a simple web application with Grails.<\/p>\n<h2>1.Groovy<\/h2>\n<p>Groovy is a dynamic object-oriented programming language for the Java platform.\u00a0It is compiled to Java Virtual Machine (JVM) byte code and integrates\u00a0with all existing\u00a0Java classes\u00a0and libraries.<br \/>\n<span data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:515,&quot;3&quot;:{&quot;1&quot;:0},&quot;4&quot;:{&quot;1&quot;:2,&quot;2&quot;:16777215},&quot;12&quot;:0}\">[ulp id=&#8217;kHqyxwGNoyzYAfPN&#8217;]<\/span><\/p>\n<h2>2. Grails MVC<\/h2>\n<p>Grails uses Spring MVC\u00a0as the underlying web application framework to implement the web applications based on Model-View-Controller (MVC) design pattern. It includes\u00a0three core framework components: Controller, Domain, and Grails Servlet Page. The diagram below shows how different part of Grails works together.<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-architecture.jpg\"><img decoding=\"async\" class=\"size-full wp-image-27299 aligncenter\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-architecture.jpg\" alt=\"grails-architecture\" width=\"588\" height=\"600\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-architecture.jpg 588w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-architecture-294x300.jpg 294w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-architecture-70x70.jpg 70w\" sizes=\"(max-width: 588px) 100vw, 588px\" \/><\/a><\/p>\n<h3>2.1. Controller<\/h3>\n<p>The GrailsDispatcherServlet uses SpringDispatcherServlet to bootstrap the Grails environment.\u00a0There is a single Spring MVC controller called\u00a0SimpleGrailsController\u00a0which handles all Grails controller requests.The SimpleGrailsController delegates to a class called SimpleGrailsControllerHelper that actually handles the client request and look up a\u00a0controller for the request. The\u00a0<strong>Controller<\/strong>\u00a0which is responsible for\u00a0transferring the\u00a0domain to view, also determines which gsp should render the view.<\/p>\n<h3>2.2. Domain<\/h3>\n<p>Domain\u00a0stores the data that can be used by controllers and views. Controllers might create a <strong>model<\/strong> or may be just process them.<\/p>\n<h3>2.3. Groovy server pages<\/h3>\n<p>Groovy server pages creates a <strong>view<\/strong> for the client response. GSP is responsible for how to display the model to user. It\u00a0could use grails tags besides any other UI grails plugin.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<h2>3. Grails Simple Application<\/h2>\n<p>This example is\u00a0implemented in Groovy\/Grails Tool Suite and using Grails 2.4.4. Now,\u00a0lets create a simple application with Grails.<\/p>\n<p>First, create a Grails Project in GGTS. The GGTS\u00a0includes Grails, so, if you wish to use a different version of Grails you need to install\u00a0it and update the new Grails path in GGTS.<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/create-grails-project.jpg\"><img decoding=\"async\" class=\"size-full wp-image-27305 aligncenter\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/create-grails-project.jpg\" alt=\"create-grails-project\" width=\"550\" height=\"534\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/create-grails-project.jpg 550w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/create-grails-project-300x291.jpg 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<h3>3.1. Controller<\/h3>\n<p>We only have one\u00a0controller here. The <code>UserController<\/code>\u00a0is responsible\u00a0to handle client requests and return proper result when they submit the form. There is a save method which defined with <code>def<\/code>. When we declare the return type as <code>def<\/code>, it means the method can return any type of object. Inside the method, an instance of User class is created\u00a0and parameters are set\u00a0in the domain object and transfered\u00a0to the view.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>UserController.groovy<\/em><\/span><\/p>\n<pre class=\"brush:java\">package com.java.code.geeks\n\nclass UserController {\n\n    def index() {\n    }\n\t\n    def save() {\n        def user = new User(params)\n        user.save()\n        render (view: \"user\", model: [user: user])\n    }\n\t\n}<\/pre>\n<h3>3.2. Model<\/h3>\n<p>Creating a domain class is very simple in Grails as there is no need to define setter and\u00a0getter methods. Grails will handles it for the application.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>User.groovy<\/em><\/span><\/p>\n<pre class=\"brush:java\">package com.java.code.geeks\n\nclass User {\n\t\n\tString firstName\n\tString lastName   \n\t \n}\n<\/pre>\n<h3>3.3. View<\/h3>\n<p>The following <code>gsp<\/code> file represents a form to user which includes two\u00a0items with the\u00a0same name as model attributes.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>index.gsp<\/em><\/span>[ulp id='kHqyxwGNoyzYAfPN']<\/p>\n<pre class=\"brush:xml; wrap-lines:false\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n\t&lt;head&gt;\n\t\t&lt;title&gt;Welcome to Grails Tutorial&lt;\/title&gt;\n\t\t&lt;style&gt;\n            .form, .text-field, .submit{\n                margin: 20px;\n            }\n\t\t&lt;\/style&gt;\n\t&lt;\/head&gt;\n\t&lt;body&gt;\n\t\t&lt;g:form name=\"form\" controller=\"user\" id=\"form\"&gt;\n\t\t\t&lt;div class=\"text-field\"&gt;&lt;label&gt;First Name: &lt;\/label&gt;&lt;g:textField name=\"firstName\" value=\"${firstName}\" \/&gt;&lt;\/div&gt;\n\t\t\t&lt;div class=\"text-field\"&gt;&lt;label&gt;Last Name: &lt;\/label&gt;&lt;g:textField name=\"lastName\" value=\"${lastName}\" \/&gt;&lt;\/div&gt;\t\n\t\t\t&lt;div class=\"submit\"&gt;&lt;g:actionSubmit value=\"Submit\" action=\"save\"\/&gt;&lt;\/div&gt;\n\t\t&lt;\/g:form&gt;\n\t&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n<p>Grails uses <code>${ }<\/code> to\u00a0to get model\u00a0attributes which is <code>firstName<\/code> and <code>lastName<\/code>\u00a0here. When we use<\/p>\n<p><span style=\"text-decoration: underline;\"><em>user.gsp<\/em><\/span><\/p>\n<pre class=\"brush:xml; wrap-lines:false\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n\t&lt;head&gt;\n\t\t&lt;title&gt;User page&lt;\/title&gt;\n\t\t&lt;style&gt;\n            .user-panel{\n                margin: 20px;\n            }\n\t\t&lt;\/style&gt;\n\t&lt;\/head&gt;\n\t&lt;body&gt;\n\t\t&lt;div class=\"user-panel\"&gt;\n\t\t\tWelcome ${user.firstName} ${user.lastName}! \n\t\t&lt;\/div&gt;\t\t\n\t&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n<h3>3.4. Run the web application<\/h3>\n<p>Now, it is time to run the web application. To run the web application, click on the Grails Command in the Toolbar and type run-app in the popup.<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/runing-grails-application.jpg\"><img decoding=\"async\" class=\"size-full wp-image-27322 aligncenter\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/runing-grails-application.jpg\" alt=\"runing-grails-application\" width=\"640\" height=\"339\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/runing-grails-application.jpg 640w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/runing-grails-application-300x160.jpg 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>And here are the pages.<\/p>\n<h4>3.4.1. Index page<\/h4>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/index-page.jpg\"><img decoding=\"async\" class=\"size-full wp-image-27323 aligncenter\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/index-page.jpg\" alt=\"grails tutorial - user page\" width=\"527\" height=\"298\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/index-page.jpg 527w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/index-page-300x170.jpg 300w\" sizes=\"(max-width: 527px) 100vw, 527px\" \/><\/a><\/p>\n<h4>3.4.2. User page<\/h4>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/user-page.jpg\"><img decoding=\"async\" class=\"size-full wp-image-27324 aligncenter\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/user-page.jpg\" alt=\"grails tutorial user page\" width=\"510\" height=\"324\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/user-page.jpg 510w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/user-page-300x191.jpg 300w\" sizes=\"(max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<h2>4. Download the source code<\/h2>\n<p>This was a Grails Tutorial for beginners.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>\nYou can download the full source code of this example here: <a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grailstutorial.zip\"><strong>Grails tutorial<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Grails is an open source framework based on Groovy and Java. It also supports MVC architecture to\u00a0for developing web application. This tutorial will describe more details about Grails and represent a simple web application with Grails. 1.Groovy Groovy is a dynamic object-oriented programming language for the Java platform.\u00a0It is compiled to Java Virtual Machine (JVM) &hellip;<\/p>\n","protected":false},"author":59,"featured_media":27333,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1528],"tags":[1214],"class_list":["post-27189","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-grails","tag-grails"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Grails tutorial for beginners - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Grails is an open source framework based on Groovy and Java. It also supports MVC architecture to\u00a0for developing web application. This tutorial will\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Grails tutorial for beginners - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Grails is an open source framework based on Groovy and Java. It also supports MVC architecture to\u00a0for developing web application. This tutorial will\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-18T09:11:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-09T13:10:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ima Miri\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ImaMiri11\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ima Miri\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/\"},\"author\":{\"name\":\"Ima Miri\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/8c979fb318b6793f7f539182ca775288\"},\"headline\":\"Grails tutorial for beginners\",\"datePublished\":\"2015-09-18T09:11:58+00:00\",\"dateModified\":\"2023-11-09T13:10:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/\"},\"wordCount\":511,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg\",\"keywords\":[\"Grails\"],\"articleSection\":[\"Grails\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/\",\"name\":\"Grails tutorial for beginners - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg\",\"datePublished\":\"2015-09-18T09:11:58+00:00\",\"dateModified\":\"2023-11-09T13:10:58+00:00\",\"description\":\"Grails is an open source framework based on Groovy and Java. It also supports MVC architecture to\u00a0for developing web application. This tutorial will\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Languages\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/jvm-languages\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Groovy\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/jvm-languages\/groovy\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Grails\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/jvm-languages\/groovy\/grails\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Grails tutorial for beginners\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/8c979fb318b6793f7f539182ca775288\",\"name\":\"Ima Miri\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/08\/Ima-Miri-96x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/08\/Ima-Miri-96x96.jpg\",\"caption\":\"Ima Miri\"},\"description\":\"Ima is a Senior Software Developer in enterprise application design and development. She is experienced in high traffic websites for e-commerce, media and financial services. She is interested in new technologies and innovation area along with technical writing. Her main focus is on web architecture, web technologies, java\/j2ee, Open source and mobile development for android.\",\"sameAs\":[\"https:\/\/imamiri.com\/\",\"https:\/\/au.linkedin.com\/in\/imamiri\",\"https:\/\/x.com\/@ImaMiri11\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/ima-miri\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Grails tutorial for beginners - Java Code Geeks","description":"Grails is an open source framework based on Groovy and Java. It also supports MVC architecture to\u00a0for developing web application. This tutorial will","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/","og_locale":"en_US","og_type":"article","og_title":"Grails tutorial for beginners - Java Code Geeks","og_description":"Grails is an open source framework based on Groovy and Java. It also supports MVC architecture to\u00a0for developing web application. This tutorial will","og_url":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2015-09-18T09:11:58+00:00","article_modified_time":"2023-11-09T13:10:58+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg","type":"image\/jpeg"}],"author":"Ima Miri","twitter_card":"summary_large_image","twitter_creator":"@ImaMiri11","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ima Miri","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/"},"author":{"name":"Ima Miri","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/8c979fb318b6793f7f539182ca775288"},"headline":"Grails tutorial for beginners","datePublished":"2015-09-18T09:11:58+00:00","dateModified":"2023-11-09T13:10:58+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/"},"wordCount":511,"commentCount":0,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg","keywords":["Grails"],"articleSection":["Grails"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/","url":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/","name":"Grails tutorial for beginners - Java Code Geeks","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg","datePublished":"2015-09-18T09:11:58+00:00","dateModified":"2023-11-09T13:10:58+00:00","description":"Grails is an open source framework based on Groovy and Java. It also supports MVC architecture to\u00a0for developing web application. This tutorial will","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/09\/grails-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/jvm-languages\/groovy\/grails\/grails-tutorial-for-beginners\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"JVM Languages","item":"https:\/\/examples.javacodegeeks.com\/category\/jvm-languages\/"},{"@type":"ListItem","position":3,"name":"Groovy","item":"https:\/\/examples.javacodegeeks.com\/category\/jvm-languages\/groovy\/"},{"@type":"ListItem","position":4,"name":"Grails","item":"https:\/\/examples.javacodegeeks.com\/category\/jvm-languages\/groovy\/grails\/"},{"@type":"ListItem","position":5,"name":"Grails tutorial for beginners"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/8c979fb318b6793f7f539182ca775288","name":"Ima Miri","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/08\/Ima-Miri-96x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/08\/Ima-Miri-96x96.jpg","caption":"Ima Miri"},"description":"Ima is a Senior Software Developer in enterprise application design and development. She is experienced in high traffic websites for e-commerce, media and financial services. She is interested in new technologies and innovation area along with technical writing. Her main focus is on web architecture, web technologies, java\/j2ee, Open source and mobile development for android.","sameAs":["https:\/\/imamiri.com\/","https:\/\/au.linkedin.com\/in\/imamiri","https:\/\/x.com\/@ImaMiri11"],"url":"https:\/\/examples.javacodegeeks.com\/author\/ima-miri\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/27189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/59"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=27189"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/27189\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/27333"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=27189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=27189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=27189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}