org.apache.struts.taglib.tiles

Class InsertTag

Implemented Interfaces:
ComponentConstants, PutListTagParent, PutTagParent, Serializable
Known Direct Subclasses:
GetTag

public class InsertTag
extends DefinitionTagSupport
implements PutTagParent, ComponentConstants, PutListTagParent

This is the tag handler for <tiles:insert>, which includes a template. The tag's body content consists of <tiles:put> tags, which are accessed by <tiles:get> in the template.
Version:
$Rev: 165160 $ $Date: 2005-04-28 17:29:58 +0100 (Thu, 28 Apr 2005) $

Nested Class Summary

protected class
InsertTag.DirectStringHandler
Handle insert direct string.
protected class
InsertTag.InsertHandler
Real handler, after attribute resolution.
protected static interface
InsertTag.TagHandler
Inner Interface.

Field Summary

static String
ROLE_DELIMITER
Deprecated. This will be removed in a release after Struts 1.2.
protected String
attribute
Name of attribute from which to read page name to include.
protected String
beanName
Name of bean used as entity to include.
protected String
beanProperty
Name of bean property, if any.
protected String
beanScope
Scope of bean, if any.
protected ComponentContext
cachedCurrentContext
Current component context.
protected String
definitionName
Name of component instance to include.
protected boolean
flush
Flush attribute value.
protected boolean
isErrorIgnored
Are errors ignored.
protected static Log
log
Commons Logging instance.
protected String
name
Name to insert.
protected PageContext
pageContext
Trick to allows inner classes to access pageContext.
protected boolean
processEndTag
Does the end tag need to be processed.
protected InsertTag.TagHandler
tagHandler
Final handler of tag methods.

Fields inherited from class org.apache.struts.taglib.tiles.DefinitionTagSupport

controllerName, controllerType, page, role

Fields inherited from interface org.apache.struts.taglib.tiles.ComponentConstants

COMPONENT_CONTEXT, COMPONENT_SCOPE, EXCEPTION_KEY, LOCALE_KEY

Method Summary

InsertTag.TagHandler
createTagHandler()
Process tag attribute and create corresponding tag handler.
int
doEndTag()
Process the end tag by including the template.
protected void
doInclude(String page)
Do an include of specified page.
int
doStartTag()
Process the start tag by checking tag's attributes and creating appropriate handler.
String
getBeanName()
Get bean name.
String
getBeanProperty()
Get bean property.
String
getBeanScope()
Get bean scope.
private Controller
getController()
Get instantiated Controller.
private ComponentContext
getCurrentContext()
Get current component context.
String
getDefinitionName()
Get definition name.
boolean
getFlush()
Get flush.
boolean
getIgnore()
Get ignore.
String
getName()
Get name.
PageContext
getPageContext()
Get the pageContext property.
InsertTag.TagHandler
processAsDefinitionOrURL(String name)
Try to process name as a definition, or as an URL if not found.
InsertTag.TagHandler
processAttribute(String name)
Process tag attribute "attribute".
protected InsertTag.TagHandler
processBean(String beanName, String beanProperty, String beanScope)
Process a bean.
protected InsertTag.TagHandler
processDefinition(ComponentDefinition definition)
End of Process tag attribute "definition".
protected InsertTag.TagHandler
processDefinitionName(String name)
Process tag attribute "definition".
InsertTag.TagHandler
processName(String name)
Process name.
void
processNestedTag(PutListTag nestedTag)
Process nested ≶putList> tag.
void
processNestedTag(PutTag nestedTag)
Process nested ≶put> tag.
InsertTag.TagHandler
processObjectValue(Object value)
Process an object retrieved as a bean or attribute.
InsertTag.TagHandler
processTypedAttribute(AttributeDefinition value)
Process typed attribute according to its type.
InsertTag.TagHandler
processUrl(String url)
Process the url.
void
putAttribute(String name, Object value)
Add a body attribute.
void
putAttribute(PutListTag nestedTag)
Method calls by nested ≶putList> tags.
void
release()
Reset member values for reuse.
protected void
releaseInternal()
Reset internal member values for reuse.
void
setAttribute(String value)
Set attribute.
void
setBeanName(String value)
Set bean name.
void
setBeanProperty(String value)
Set bean property.
void
setBeanScope(String value)
Set bean scope.
void
setComponent(String name)
Set component.
void
setDefinition(String name)
Set definition.
void
setFlush(String flush)
Set flush.
void
setFlush(boolean flush)
Set flush.
void
setIgnore(boolean ignore)
Set ignore.
void
setName(String value)
Set name.
void
setPageContext(PageContext pc)
Set the current page context.
static boolean
userHasRole(HttpServletRequest request, String role)
Parse the list of roles and return true or false based on whether the user has that role or not.

Methods inherited from class org.apache.struts.taglib.tiles.DefinitionTagSupport

getControllerName, getControllerType, getPage, getRole, getTemplate, release, setController, setControllerClass, setControllerName, setControllerType, setControllerUrl, setPage, setRole, setTemplate

Field Details

ROLE_DELIMITER

public static final String ROLE_DELIMITER

Deprecated. This will be removed in a release after Struts 1.2.

The role delimiter.

attribute

protected String attribute
Name of attribute from which to read page name to include.

beanName

protected String beanName
Name of bean used as entity to include.

beanProperty

protected String beanProperty
Name of bean property, if any.

beanScope

protected String beanScope
Scope of bean, if any.

cachedCurrentContext

protected ComponentContext cachedCurrentContext
Current component context.

definitionName

protected String definitionName
Name of component instance to include.

flush

protected boolean flush
Flush attribute value.

isErrorIgnored

protected boolean isErrorIgnored
Are errors ignored. This is the property for attribute 'ignore'. Default value is false, which throw an exception. Only 'attribute not found' errors are ignored.

log

protected static Log log
Commons Logging instance.

name

protected String name
Name to insert.

pageContext

protected PageContext pageContext
Trick to allows inner classes to access pageContext.

processEndTag

protected boolean processEndTag
Does the end tag need to be processed. Default value is true. Boolean set in case of ignored errors.

tagHandler

protected InsertTag.TagHandler tagHandler
Final handler of tag methods.

Method Details

createTagHandler

public InsertTag.TagHandler createTagHandler()
            throws JspException
Process tag attribute and create corresponding tag handler.

doEndTag

public int doEndTag()
            throws JspException
Process the end tag by including the template. Simply call the handler doEndTag

doInclude

protected void doInclude(String page)
            throws ServletException,
                   IOException
Do an include of specified page. This method is used internally to do all includes from this class. It delegates the include call to the TilesUtil.doInclude().
Parameters:
page - The page that will be included

doStartTag

public int doStartTag()
            throws JspException
Process the start tag by checking tag's attributes and creating appropriate handler. Possible handlers :
  • URL
  • definition
  • direct String
Handlers also contain sub-component context.

getBeanName

public String getBeanName()
Get bean name.

getBeanProperty

public String getBeanProperty()
Get bean property.

getBeanScope

public String getBeanScope()
Get bean scope.

getController

private Controller getController()
            throws JspException
Get instantiated Controller. Return controller denoted by controllerType, or null if controllerType is null.

getCurrentContext

private ComponentContext getCurrentContext()
Get current component context.

getDefinitionName

public String getDefinitionName()
Get definition name.

getFlush

public boolean getFlush()
Get flush.

getIgnore

public boolean getIgnore()
Get ignore.

getName

public String getName()
Get name.

getPageContext

public PageContext getPageContext()
Get the pageContext property.

processAsDefinitionOrURL

public InsertTag.TagHandler processAsDefinitionOrURL(String name)
            throws JspException
Try to process name as a definition, or as an URL if not found.
Parameters:
name - Name to process.
Returns:
appropriate TagHandler

processAttribute

public InsertTag.TagHandler processAttribute(String name)
            throws JspException
Process tag attribute "attribute". Get value from component attribute. Found value is process by processObjectValue().
Parameters:
name - Name of the attribute.
Returns:
Appropriate TagHandler.

processBean

protected InsertTag.TagHandler processBean(String beanName,
                                           String beanProperty,
                                           String beanScope)
            throws JspException
Process a bean. Get bean value, eventually using property and scope. Found value is process by processObjectValue().
Parameters:
beanName - Name of the bean
beanProperty - Property in the bean, or null.
beanScope - bean scope, or null.
Returns:
Appropriate TagHandler.

processDefinition

protected InsertTag.TagHandler processDefinition(ComponentDefinition definition)
            throws JspException
End of Process tag attribute "definition". Overload definition with tag attributes "template" and "role". Then, create appropriate tag handler.
Parameters:
definition - Definition to process.
Returns:
Appropriate TagHandler.

processDefinitionName

protected InsertTag.TagHandler processDefinitionName(String name)
            throws JspException
Process tag attribute "definition". First, search definition in the factory, then create handler from this definition.
Parameters:
name - Name of the definition.
Returns:
Appropriate TagHandler.

processName

public InsertTag.TagHandler processName(String name)
            throws JspException
Process name. Search in following order :
  • Component context - if found, process it as value.
  • definitions factory
  • URL
Returns:
appropriate tag handler.

processNestedTag

public void processNestedTag(PutListTag nestedTag)
            throws JspException
Process nested ≶putList> tag. Method calls by nested ≶putList> tags. Nested list is added to sub-component attributes If role is defined, it is checked immediately.
Specified by:
processNestedTag in interface PutListTagParent

processNestedTag

public void processNestedTag(PutTag nestedTag)
            throws JspException
Process nested ≶put> tag. Method calls by nested ≶put> tags. Nested list is added to current list. If role is defined, it is checked immediately.
Specified by:
processNestedTag in interface PutTagParent

processObjectValue

public InsertTag.TagHandler processObjectValue(Object value)
            throws JspException
Process an object retrieved as a bean or attribute. Object can be a typed attribute, a String, or anything else. If typed attribute, use associated type. Otherwise, apply toString() on object, and use returned string as a name.

processTypedAttribute

public InsertTag.TagHandler processTypedAttribute(AttributeDefinition value)
            throws JspException
Process typed attribute according to its type.
Parameters:
value - Typed attribute to process.
Returns:
appropriate TagHandler.

processUrl

public InsertTag.TagHandler processUrl(String url)
            throws JspException
Process the url.

putAttribute

public void putAttribute(String name,
                         Object value)
Add a body attribute. Erase any attribute with same name previously set.

putAttribute

public void putAttribute(PutListTag nestedTag)
            throws JspException
Method calls by nested ≶putList> tags. A new list is added to current insert object.

release

public void release()
Reset member values for reuse. This method calls super.release(), which invokes TagSupport.release(), which typically does nothing.
Overrides:
release in interface DefinitionTagSupport

releaseInternal

protected void releaseInternal()
Reset internal member values for reuse.

setAttribute

public void setAttribute(String value)
Set attribute.

setBeanName

public void setBeanName(String value)
Set bean name.

setBeanProperty

public void setBeanProperty(String value)
Set bean property.

setBeanScope

public void setBeanScope(String value)
Set bean scope.

setComponent

public void setComponent(String name)
Set component.

setDefinition

public void setDefinition(String name)
Set definition.

setFlush

public void setFlush(String flush)
Set flush. Method added for compatibility with JSP1.1

setFlush

public void setFlush(boolean flush)
Set flush.

setIgnore

public void setIgnore(boolean ignore)
Set ignore.

setName

public void setName(String value)
Set name.

setPageContext

public void setPageContext(PageContext pc)
Set the current page context. Called by the page implementation prior to doStartTag().

Needed to allow inner classes to access pageContext.


userHasRole

public static boolean userHasRole(HttpServletRequest request,
                                  String role)
Parse the list of roles and return true or false based on whether the user has that role or not.
Parameters:
request - The request.
role - Comma-delimited list of roles.

Copyright B) 2000-2007 - The Apache Software Foundation