Groovy Documentation

org.codehaus.groovy.grails.web.pages
[Java] Class GroovyPagesTemplateEngine

java.lang.Object
  groovy.text.TemplateEngine
      org.codehaus.groovy.grails.support.ResourceAwareTemplateEngine
          org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine
All Implemented Interfaces:
org.springframework.context.ApplicationContextAware, org.springframework.web.context.ServletContextAware, org.springframework.beans.factory.InitializingBean

public class GroovyPagesTemplateEngine
extends ResourceAwareTemplateEngine

Based on (but not extending) the existing TemplateEngine implementations within Groovy. It allows GSP pages to be re-used in different context using code like the below: Template t = new GroovyPagesTemplateEngine() .createTemplate(context,request,response); t.make() .writeTo(out);

Authors:
Graeme Rocher
Lari Hotari
Since:
0.1


Field Summary
static java.lang.String BEAN_ID

static java.lang.String CONFIG_PROPERTY_DISABLE_CACHING_RESOURCES

static java.lang.String CONFIG_PROPERTY_GSP_ENABLE_RELOAD

static java.lang.String RESOURCE_LOADER_BEAN_ID

 
Constructor Summary
GroovyPagesTemplateEngine()

GroovyPagesTemplateEngine(javax.servlet.ServletContext servletContext)

 
Method Summary
void afterPropertiesSet()

protected GroovyPageMetaInfo buildPageMetaInfo(java.io.InputStream inputStream, org.springframework.core.io.Resource res, java.lang.String pageName)

Constructs a GroovyPageMetaInfo instance which holds the script class, modified date and so on

int[] calculateLineNumbersForPage(javax.servlet.ServletContext context, java.lang.String url)

Retrieves a line number matrix for the specified page that can be used to retrieve the actual line number within the GSP page if the line number within the compiled GSP is known

void clearPageCache()

Clears the page cache.

groovy.text.Template createTemplate(java.lang.Class viewClass)

Creates a template from a pre-compiled view class

groovy.text.Template createTemplate(org.springframework.core.io.Resource resource)

Creates a Template for the given Spring Resource instance

groovy.text.Template createTemplate(org.springframework.core.io.Resource resource, boolean cacheable)

Creates a Template for the given Spring Resource instance

groovy.text.Template createTemplate(java.lang.String uri)

Creates a Template using the given URI.

groovy.text.Template createTemplate(java.lang.String txt, java.lang.String pageName)

Creates a Template using the given text for the Template and the given name.

groovy.text.Template createTemplate()

Creates a Template for the currently executing Request

groovy.text.Template createTemplate(java.io.File file)

Creates a Template for the given file

groovy.text.Template createTemplate(java.net.URL url)

Creates a Template for the given URL

groovy.text.Template createTemplate(java.io.InputStream inputStream)

Create a Template for the given InputStream

protected groovy.text.Template createTemplate(java.io.InputStream inputStream, org.springframework.core.io.Resource resource, java.lang.String pageName)

Constructs a Groovy Template from the given InputStream and Spring Resource object

groovy.text.Template createTemplateForUri(java.lang.String uri)

groovy.text.Template createTemplateForUri(String[] uri)

protected java.lang.String establishPageName(org.springframework.core.io.Resource res, java.lang.String pageName)

Establishes the name to use for the given resource

protected java.lang.String getCurrentRequestUri(javax.servlet.http.HttpServletRequest request)

Return the page identifier.

java.util.Map getPrecompiledGspMap()

protected java.lang.String getUriWithinGrailsViews(java.lang.String relativeUri)

Returns the path to the view of the relative URI within the Grails views directory

boolean isCacheResources()

boolean isReloadEnabled()

Return whether reload is enabled for the GroovyPagesTemplateEngine

void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)

Sets the ResourceLoader from the ApplicationContext

void setCacheResources(boolean cacheResources)

void setClassLoader(java.lang.ClassLoader classLoader)

Sets the ClassLoader that the TemplateEngine should use to

void setJspTagLibraryResolver(TagLibraryResolver jspTagLibraryResolver)

void setPrecompiledGspMap(java.util.Map precompiledGspMap)

void setReloadEnabled(boolean b)

Sets whether reloading is enabled

void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)

Sets a custom ResourceLoader that will be used to load GSPs for URIs

void setServletContext(javax.servlet.ServletContext servletContext)

void setTagLibraryLookup(TagLibraryLookup tagLibraryLookup)

 
Methods inherited from class ResourceAwareTemplateEngine
createTemplate, createTemplate, createTemplate, createTemplate, createTemplate, createTemplate, createTemplate
 
Methods inherited from class groovy.text.TemplateEngine
groovy.text.TemplateEngine#createTemplate(java.io.Reader), groovy.text.TemplateEngine#createTemplate(java.lang.String), groovy.text.TemplateEngine#createTemplate(java.io.File), groovy.text.TemplateEngine#createTemplate(java.net.URL), groovy.text.TemplateEngine#wait(), groovy.text.TemplateEngine#wait(long), groovy.text.TemplateEngine#wait(long, int), groovy.text.TemplateEngine#equals(java.lang.Object), groovy.text.TemplateEngine#toString(), groovy.text.TemplateEngine#hashCode(), groovy.text.TemplateEngine#getClass(), groovy.text.TemplateEngine#notify(), groovy.text.TemplateEngine#notifyAll()
 

Field Detail

BEAN_ID

public static final java.lang.String BEAN_ID


CONFIG_PROPERTY_DISABLE_CACHING_RESOURCES

public static final java.lang.String CONFIG_PROPERTY_DISABLE_CACHING_RESOURCES


CONFIG_PROPERTY_GSP_ENABLE_RELOAD

public static final java.lang.String CONFIG_PROPERTY_GSP_ENABLE_RELOAD


RESOURCE_LOADER_BEAN_ID

public static final java.lang.String RESOURCE_LOADER_BEAN_ID


 
Constructor Detail

GroovyPagesTemplateEngine

public GroovyPagesTemplateEngine()


GroovyPagesTemplateEngine

public GroovyPagesTemplateEngine(javax.servlet.ServletContext servletContext)


 
Method Detail

afterPropertiesSet

public void afterPropertiesSet()


buildPageMetaInfo

protected GroovyPageMetaInfo buildPageMetaInfo(java.io.InputStream inputStream, org.springframework.core.io.Resource res, java.lang.String pageName)
Constructs a GroovyPageMetaInfo instance which holds the script class, modified date and so on
Parameters:
inputStream - The InputStream to construct the GroovyPageMetaInfo instance from
res - The Spring Resource to construct the MetaInfo from
pageName - The name of the page (can be null, in which case method responsible for calculating appropriate alternative)
Returns:
The GroovyPageMetaInfo instance


calculateLineNumbersForPage

public int[] calculateLineNumbersForPage(@SuppressWarnings("unused") javax.servlet.ServletContext context, java.lang.String url)
Retrieves a line number matrix for the specified page that can be used to retrieve the actual line number within the GSP page if the line number within the compiled GSP is known
Parameters:
context - The ServletContext instance
url - The URL of the page
Returns:
An array where the index is the line number witin the compiled GSP and the value is the line number within the source


clearPageCache

public void clearPageCache()
Clears the page cache. Views will be re-compiled.


createTemplate

public groovy.text.Template createTemplate(java.lang.Class viewClass)
Creates a template from a pre-compiled view class
Parameters:
viewClass - The view class
Returns:
The Template instance


createTemplate

@Override
public groovy.text.Template createTemplate(org.springframework.core.io.Resource resource)
Creates a Template for the given Spring Resource instance
Parameters:
resource - The Resource to create the Template for
Returns:
The Template instance


createTemplate

@Override
public groovy.text.Template createTemplate(org.springframework.core.io.Resource resource, boolean cacheable)
Creates a Template for the given Spring Resource instance
Parameters:
resource - The Resource to create the Template for
cacheable - The resource can be cached or not
Returns:
The Template instance


createTemplate

@Override
public groovy.text.Template createTemplate(java.lang.String uri)
Creates a Template using the given URI.
throws:
CompilationFailedException
Parameters:
uri - The URI of the page to create the template for
Returns:
The Template instance


createTemplate

public groovy.text.Template createTemplate(java.lang.String txt, java.lang.String pageName)
Creates a Template using the given text for the Template and the given name. The name of the template is required
throws:
CompilationFailedException
throws:
java.io.IOException Thrown if an IO exception occurs creating the Template
Parameters:
txt - The URI of the page to create the template for
pageName - The name of the page being parsed
Returns:
The Template instance


createTemplate

public groovy.text.Template createTemplate()
Creates a Template for the currently executing Request
throws:
java.io.IOException Thrown when an exception occurs Reading the Template
throws:
ClassNotFoundException Thrown when the class of the template was not found
Returns:
The Template for the currently executing request


createTemplate

@Override
public groovy.text.Template createTemplate(java.io.File file)
Creates a Template for the given file
throws:
CompilationFailedException When an error occured compiling the Template
throws:
ClassNotFoundException When a Class cannot be found within the given Template
throws:
IOException When a I/O Exception occurs reading the Template
Parameters:
file - The File to use to construct the template with
Returns:
A Groovy Template instance


createTemplate

@Override
public groovy.text.Template createTemplate(java.net.URL url)
Creates a Template for the given URL
throws:
CompilationFailedException When an error occured compiling the Template
throws:
ClassNotFoundException When a Class cannot be found within the given Template
throws:
IOException When a I/O Exception occurs reading the Template
Parameters:
url - The URL to use to construct the template with
Returns:
A Groovy Template instance


createTemplate

@Override
public groovy.text.Template createTemplate(java.io.InputStream inputStream)
Create a Template for the given InputStream
Parameters:
inputStream - The InputStream to create the Template for
Returns:
The Template instance


createTemplate

protected groovy.text.Template createTemplate(java.io.InputStream inputStream, org.springframework.core.io.Resource resource, java.lang.String pageName)
Constructs a Groovy Template from the given InputStream and Spring Resource object
Parameters:
inputStream - The InputStream to use
resource - The Resource to use
pageName - The name of the page
Returns:
The Groovy Template


createTemplateForUri

public groovy.text.Template createTemplateForUri(java.lang.String uri)


createTemplateForUri

public groovy.text.Template createTemplateForUri(String[] uri)


establishPageName

protected java.lang.String establishPageName(org.springframework.core.io.Resource res, java.lang.String pageName)
Establishes the name to use for the given resource
Parameters:
res - The Resource to calculate the name for
pageName - The name of the page, can be null, in which case method responsible for calculation
Returns:
The name as a String


getCurrentRequestUri

protected java.lang.String getCurrentRequestUri(javax.servlet.http.HttpServletRequest request)
Return the page identifier.
Parameters:
request - The HttpServletRequest instance
Returns:
The page id


getPrecompiledGspMap

public java.util.Map getPrecompiledGspMap()


getUriWithinGrailsViews

protected java.lang.String getUriWithinGrailsViews(java.lang.String relativeUri)
Returns the path to the view of the relative URI within the Grails views directory
Parameters:
relativeUri - The relative URI
Returns:
The path of the URI within the Grails view directory


isCacheResources

public boolean isCacheResources()


isReloadEnabled

public boolean isReloadEnabled()
Return whether reload is enabled for the GroovyPagesTemplateEngine
Returns:
True if it is


setApplicationContext

public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
Sets the ResourceLoader from the ApplicationContext
throws:
BeansException Thrown when an error occurs with the ApplicationContext
Parameters:
applicationContext - The ApplicationContext


setCacheResources

public void setCacheResources(boolean cacheResources)


setClassLoader

public void setClassLoader(java.lang.ClassLoader classLoader)
Sets the ClassLoader that the TemplateEngine should use to
Parameters:
classLoader - The ClassLoader to use when compilation of Groovy Pages occurs


setJspTagLibraryResolver

public void setJspTagLibraryResolver(TagLibraryResolver jspTagLibraryResolver)


setPrecompiledGspMap

public void setPrecompiledGspMap(java.util.Map precompiledGspMap)


setReloadEnabled

public void setReloadEnabled(boolean b)
Sets whether reloading is enabled
Parameters:
b - True if it is enabled


setResourceLoader

public void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
Sets a custom ResourceLoader that will be used to load GSPs for URIs
Parameters:
resourceLoader - The ResourceLoader instance


setServletContext

public void setServletContext(javax.servlet.ServletContext servletContext)


setTagLibraryLookup

public void setTagLibraryLookup(TagLibraryLookup tagLibraryLookup)


 

Groovy Documentation