{"id":8538,"date":"2012-09-25T02:58:05","date_gmt":"2012-09-24T21:28:05","guid":{"rendered":"https:\/\/2thenew.online\/blog\/?p=8538"},"modified":"2012-09-25T02:58:05","modified_gmt":"2012-09-24T21:28:05","slug":"inject-methodsproperties-to-be-available-in-all-gsp-pages","status":"publish","type":"post","link":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/","title":{"rendered":"Inject Methods\/Properties to be available in all GSP Pages"},"content":{"rendered":"<p>Hi,<\/p>\n<p>&nbsp;<\/p>\n<p>There could be cases where we would need to inject some methods or properties in all GSP pages. <\/p>\n<p>&nbsp;<\/p>\n<p>As we know that the <em><strong>GSP pages extends GroovyPage class<\/strong><\/em>, hence injecting properties\/methods in GroovyPage class can solve out purpose.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Example:<\/strong> Lets add appVersion property and a method to provide logo link irrespective of the knowledge of containing module.<br \/>\n[java]<br \/>\n\/\/Adding property<br \/>\nGroovyPage.metaClass.appVersion = &quot;my app Version&quot;<\/p>\n<p>\/\/Adding the method to give the logo link<br \/>\nGroovyPage.metaClass.logoLink = {<br \/>\n        resource(dir: &#8216;images&#8217;, file: &#8216;logo.png&#8217;,plugin: &#8216;my-module-containing-logo&#8217;)<br \/>\n}<br \/>\n[\/java]<\/p>\n<p>&nbsp;<\/p>\n<p>Now in Any GSP in the application we can do:<br \/>\n[html]<br \/>\n&lt;div&gt;<br \/>\n&lt;img src=&quot;${logoLink()}&quot; \/&gt;<br \/>\n&lt;p&gt;App Version:- ${appVersion}&lt;\/p&gt;<br \/>\n&lt;\/div&gt;<\/p>\n<p>[\/html]<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Hope It Helps!<br \/>\n<strong>Kushal Likhi<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi, &nbsp; There could be cases where we would need to inject some methods or properties in all GSP pages. &nbsp; As we know that the GSP pages extends GroovyPage class, hence injecting properties\/methods in GroovyPage class can solve out purpose. &nbsp; Example: Lets add appVersion property and a method to provide logo link irrespective [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":9,"footnotes":""},"categories":[7],"tags":[9,1069,145],"class_list":["post-8538","post","type-post","status-publish","format-standard","hentry","category-grails","tag-groovy","tag-groovypage","tag-metaprogramming"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Hi, There could be cases where we would need to inject some methods or properties in all GSP pages. As we know that the GSP pages extends GroovyPage class, hence injecting properties\/methods in GroovyPage class can solve out purpose. Example: Lets add appVersion property and a method to provide logo link irrespective\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Kushal Likhi\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Inject Methods\/Properties to be available in all GSP Pages | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Hi, There could be cases where we would need to inject some methods or properties in all GSP pages. As we know that the GSP pages extends GroovyPage class, hence injecting properties\/methods in GroovyPage class can solve out purpose. Example: Lets add appVersion property and a method to provide logo link irrespective\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/2thenew.online\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/2thenew.online\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Inject Methods\/Properties to be available in all GSP Pages | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Hi, There could be cases where we would need to inject some methods or properties in all GSP pages. As we know that the GSP pages extends GroovyPage class, hence injecting properties\/methods in GroovyPage class can solve out purpose. Example: Lets add appVersion property and a method to provide logo link irrespective\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/2thenew.online\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/#article\",\"name\":\"Inject Methods\\\/Properties to be available in all GSP Pages | TO THE NEW Blog\",\"headline\":\"Inject Methods\\\/Properties to be available in all GSP Pages\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2012-09-25T02:58:05+05:30\",\"dateModified\":\"2012-09-25T02:58:05+05:30\",\"inLanguage\":\"en-US\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/#webpage\"},\"articleSection\":\"Grails, Groovy, GroovyPage, MetaProgramming\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"position\":2,\"name\":\"Grails\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/#listItem\",\"name\":\"Inject Methods\\\/Properties to be available in all GSP Pages\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/#listItem\",\"position\":3,\"name\":\"Inject Methods\\\/Properties to be available in all GSP Pages\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/\",\"name\":\"Kushal Likhi\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9311812a092d64f47eb30d7ad28378cfae924a0cac140ffbb686fcd8a565a57e?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Kushal Likhi\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/\",\"name\":\"Inject Methods\\\/Properties to be available in all GSP Pages | TO THE NEW Blog\",\"description\":\"Hi, There could be cases where we would need to inject some methods or properties in all GSP pages. As we know that the GSP pages extends GroovyPage class, hence injecting properties\\\/methods in GroovyPage class can solve out purpose. Example: Lets add appVersion property and a method to provide logo link irrespective\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/inject-methodsproperties-to-be-available-in-all-gsp-pages\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\"},\"datePublished\":\"2012-09-25T02:58:05+05:30\",\"dateModified\":\"2012-09-25T02:58:05+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Inject Methods\/Properties to be available in all GSP Pages | TO THE NEW Blog","description":"Hi, There could be cases where we would need to inject some methods or properties in all GSP pages. As we know that the GSP pages extends GroovyPage class, hence injecting properties\/methods in GroovyPage class can solve out purpose. Example: Lets add appVersion property and a method to provide logo link irrespective","canonical_url":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/#article","name":"Inject Methods\/Properties to be available in all GSP Pages | TO THE NEW Blog","headline":"Inject Methods\/Properties to be available in all GSP Pages","author":{"@id":"https:\/\/2thenew.online\/blog\/author\/kushal\/#author"},"publisher":{"@id":"https:\/\/2thenew.online\/blog\/#organization"},"datePublished":"2012-09-25T02:58:05+05:30","dateModified":"2012-09-25T02:58:05+05:30","inLanguage":"en-US","commentCount":2,"mainEntityOfPage":{"@id":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/#webpage"},"isPartOf":{"@id":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/#webpage"},"articleSection":"Grails, Groovy, GroovyPage, MetaProgramming"},{"@type":"BreadcrumbList","@id":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/2thenew.online\/blog#listItem","position":1,"name":"Home","item":"https:\/\/2thenew.online\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.online\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/2thenew.online\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/2thenew.online\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/#listItem","name":"Inject Methods\/Properties to be available in all GSP Pages"},"previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.online\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/#listItem","position":3,"name":"Inject Methods\/Properties to be available in all GSP Pages","previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.online\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/2thenew.online\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/2thenew.online\/blog\/"},{"@type":"Person","@id":"https:\/\/2thenew.online\/blog\/author\/kushal\/#author","url":"https:\/\/2thenew.online\/blog\/author\/kushal\/","name":"Kushal Likhi","image":{"@type":"ImageObject","@id":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/9311812a092d64f47eb30d7ad28378cfae924a0cac140ffbb686fcd8a565a57e?s=96&d=mm&r=g","width":96,"height":96,"caption":"Kushal Likhi"}},{"@type":"WebPage","@id":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/#webpage","url":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/","name":"Inject Methods\/Properties to be available in all GSP Pages | TO THE NEW Blog","description":"Hi, There could be cases where we would need to inject some methods or properties in all GSP pages. As we know that the GSP pages extends GroovyPage class, hence injecting properties\/methods in GroovyPage class can solve out purpose. Example: Lets add appVersion property and a method to provide logo link irrespective","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/2thenew.online\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/#breadcrumblist"},"author":{"@id":"https:\/\/2thenew.online\/blog\/author\/kushal\/#author"},"creator":{"@id":"https:\/\/2thenew.online\/blog\/author\/kushal\/#author"},"datePublished":"2012-09-25T02:58:05+05:30","dateModified":"2012-09-25T02:58:05+05:30"},{"@type":"WebSite","@id":"https:\/\/2thenew.online\/blog\/#website","url":"https:\/\/2thenew.online\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/2thenew.online\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Inject Methods\/Properties to be available in all GSP Pages | TO THE NEW Blog","og:description":"Hi, There could be cases where we would need to inject some methods or properties in all GSP pages. As we know that the GSP pages extends GroovyPage class, hence injecting properties\/methods in GroovyPage class can solve out purpose. Example: Lets add appVersion property and a method to provide logo link irrespective","og:url":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/","og:image":"https:\/\/2thenew.online\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/2thenew.online\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Inject Methods\/Properties to be available in all GSP Pages | TO THE NEW Blog","twitter:description":"Hi, There could be cases where we would need to inject some methods or properties in all GSP pages. As we know that the GSP pages extends GroovyPage class, hence injecting properties\/methods in GroovyPage class can solve out purpose. Example: Lets add appVersion property and a method to provide logo link irrespective","twitter:image":"https:\/\/2thenew.online\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"8538","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-30 08:09:00","updated":"2024-02-29 10:53:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.online\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.online\/blog\/category\/grails\/\" title=\"Grails\">Grails<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tInject Methods\/Properties to be available in all GSP Pages\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/2thenew.online\/blog"},{"label":"Grails","link":"https:\/\/2thenew.online\/blog\/category\/grails\/"},{"label":"Inject Methods\/Properties to be available in all GSP Pages","link":"https:\/\/2thenew.online\/blog\/inject-methodsproperties-to-be-available-in-all-gsp-pages\/"}],"_links":{"self":[{"href":"https:\/\/2thenew.online\/blog\/wp-json\/wp\/v2\/posts\/8538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/2thenew.online\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2thenew.online\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2thenew.online\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/2thenew.online\/blog\/wp-json\/wp\/v2\/comments?post=8538"}],"version-history":[{"count":0,"href":"https:\/\/2thenew.online\/blog\/wp-json\/wp\/v2\/posts\/8538\/revisions"}],"wp:attachment":[{"href":"https:\/\/2thenew.online\/blog\/wp-json\/wp\/v2\/media?parent=8538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2thenew.online\/blog\/wp-json\/wp\/v2\/categories?post=8538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2thenew.online\/blog\/wp-json\/wp\/v2\/tags?post=8538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}