createLinkTo
Purpose
Creates a link that can be used where necessary (for example in an href, javascript, ajax call etc.)Examples
Example controller for an application called "shop":Example usages for the "shop" app:<g:createLinkTo dir="css" file="main.css" /> == /shop/css/main.css
<g:createLinkTo dir="css" file="main.css" absolute="true"/> == http://portal.mygreatsite.com/css/main.css
<g:createLinkTo dir="css" file="main.css" base="http://admin.mygreatsite.com"/> == http://admin.mygreatsite.com/css/main.css
Example as a method call in GSP only:<link type="text/css" href="${createLinkTo(dir:'css',file:'main.css')}" />
Results in:<link type="text/css" href="/shop/css/main.css" />
Description
Attributes
dir
(optional) - the name of the directory within the grails app to link to
file
(optional) - the name of the file within the grails app to link to
absolute
(optional) - If set to "true" will prefix the link target address with the value of the grails.serverURL property from Config, or http://localhost:<port> if no value in Config and not running in production.
base
(optional) - Sets the prefix to be added to the link target address, typically an absolute server URL. This overrides the behaviour of the absolute
property, if both are specified.
Source
Show Source
def createLinkTo = { attrs ->
def writer = out
if (attrs.base) {
writer << attrs.remove('base')
} else {
handleAbsolute(attrs)
}
writer << grailsAttributes.getApplicationUri(request);
def dir = attrs['dir']
if(dir) {
writer << (dir.startsWith("/") ? dir : "/${dir}")
}
def file = attrs['file']
if(file) {
writer << (file.startsWith("/") ? file : "/${file}")
}
}