Apache Struts API Documentation: Class InsertTag

Apache Struts API


org.apache.struts.taglib.tiles Class InsertTag

java.lang.Object
  |
  +--javax.servlet.jsp.tagext.TagSupport
        |
        +--org.apache.struts.taglib.tiles.DefinitionTagSupport
              |
              +--org.apache.struts.taglib.tiles.InsertTag
All Implemented Interfaces:
ComponentConstants, PutListTagParent, PutTagParent, java.io.Serializable, javax.servlet.jsp.tagext.Tag
Direct Known 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) $
See Also:
Serialized Form

Inner 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
protected  java.lang.String attribute
          Name of attribute from which to read page name to include.
protected  java.lang.String beanName
          Name of bean used as entity to include.
protected  java.lang.String beanProperty
          Name of bean property, if any.
protected  java.lang.String beanScope
          Scope of bean, if any.
protected  ComponentContext cachedCurrentContext
          Current component context.
protected  java.lang.String definitionName
          Name of component instance to include.
protected  boolean flush
          Flush attribute value.
protected  boolean isErrorIgnored
          Are errors ignored.
protected static org.apache.commons.logging.Log log
          Commons Logging instance.
protected  java.lang.String name
          Name to insert.
protected  javax.servlet.jsp.PageContext pageContext
          Trick to allows inner classes to access pageContext.
protected  boolean processEndTag
          Does the end tag need to be processed.
static java.lang.String ROLE_DELIMITER
          Deprecated. This will be removed in a release after Struts 1.2.
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 class javax.servlet.jsp.tagext.TagSupport
id, parent, values
 
Fields inherited from interface org.apache.struts.taglib.tiles.ComponentConstants
COMPONENT_CONTEXT, COMPONENT_SCOPE, EXCEPTION_KEY, LOCALE_KEY
 
Fields inherited from interface javax.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
 
Constructor Summary
InsertTag()
           
 
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(java.lang.String page)
          Do an include of specified page.
 int doStartTag()
          Process the start tag by checking tag's attributes and creating appropriate handler.
 java.lang.String getBeanName()
          Get bean name.
 java.lang.String getBeanProperty()
          Get bean property.
 java.lang.String getBeanScope()
          Get bean scope.
private  Controller getController()
          Get instantiated Controller.
private  ComponentContext getCurrentContext()
          Get current component context.
 java.lang.String getDefinitionName()
          Get definition name.
 boolean getFlush()
          Get flush.
 boolean getIgnore()
          Get ignore.
 java.lang.String getName()
          Get name.
 javax.servlet.jsp.PageContext getPageContext()
          Get the pageContext property.
 InsertTag.TagHandler processAsDefinitionOrURL(java.lang.String name)
          Try to process name as a definition, or as an URL if not found.
 InsertTag.TagHandler processAttribute(java.lang.String name)
          Process tag attribute "attribute".
protected  InsertTag.TagHandler processBean(java.lang.String beanName, java.lang.String beanProperty, java.lang.String beanScope)
          Process a bean.
protected  InsertTag.TagHandler processDefinition(ComponentDefinition definition)
          End of Process tag attribute "definition".
protected  InsertTag.TagHandler processDefinitionName(java.lang.String name)
          Process tag attribute "definition".
 InsertTag.TagHandler processName(java.lang.String name)
          Process name.
 void processNestedTag(PutListTag nestedTag)
          Process nested ≶putList> tag.
 void processNestedTag(PutTag nestedTag)
          Process nested ≶put> tag.
 InsertTag.TagHandler processObjectValue(java.lang.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(java.lang.String url)
          Process the url.
 void putAttribute(PutListTag nestedTag)
          Method calls by nested ≶putList> tags.
 void putAttribute(java.lang.String name, java.lang.Object value)
          Add a body attribute.
 void release()
          Reset member values for reuse.
protected  void releaseInternal()
          Reset internal member values for reuse.
 void setAttribute(java.lang.String value)
          Set attribute.
 void setBeanName(java.lang.String value)
          Set bean name.
 void setBeanProperty(java.lang.String value)
          Set bean property.
 void setBeanScope(java.lang.String value)
          Set bean scope.
 void setComponent(java.lang.String name)
          Set component.
 void setDefinition(java.lang.String name)
          Set definition.
 void setFlush(boolean flush)
          Set flush.
 void setFlush(java.lang.String flush)
          Set flush.
 void setIgnore(boolean ignore)
          Set ignore.
 void setName(java.lang.String value)
          Set name.
 void setPageContext(javax.servlet.jsp.PageContext pc)
          Set the current page context.
static boolean userHasRole(javax.servlet.http.HttpServletRequest request, java.lang.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, setController, setControllerClass, setControllerName, setControllerType, setControllerUrl, setPage, setRole, setTemplate
 
Methods inherited from class javax.servlet.jsp.tagext.TagSupport
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setParent, setValue
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

ROLE_DELIMITER

public static final java.lang.String ROLE_DELIMITER
Deprecated. This will be removed in a release after Struts 1.2.

The role delimiter.

log

protected static org.apache.commons.logging.Log log
Commons Logging instance.

flush

protected boolean flush
Flush attribute value.

name

protected java.lang.String name
Name to insert.

attribute

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

beanName

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

beanProperty

protected java.lang.String beanProperty
Name of bean property, if any.

beanScope

protected java.lang.String beanScope
Scope of bean, if any.

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.

definitionName

protected java.lang.String definitionName
Name of component instance to include.

processEndTag

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

cachedCurrentContext

protected ComponentContext cachedCurrentContext
Current component context.

tagHandler

protected InsertTag.TagHandler tagHandler
Final handler of tag methods.

pageContext

protected javax.servlet.jsp.PageContext pageContext
Trick to allows inner classes to access pageContext.
Constructor Detail

InsertTag

public InsertTag()
Method Detail

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 class DefinitionTagSupport

releaseInternal

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

setPageContext

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

Needed to allow inner classes to access pageContext.

Overrides:
setPageContext in class javax.servlet.jsp.tagext.TagSupport

getPageContext

public javax.servlet.jsp.PageContext getPageContext()
Get the pageContext property.

setName

public void setName(java.lang.String value)
Set name.

getName

public java.lang.String getName()
Get name.

setComponent

public void setComponent(java.lang.String name)
Set component.

setDefinition

public void setDefinition(java.lang.String name)
Set definition.

getDefinitionName

public java.lang.String getDefinitionName()
Get definition name.

setAttribute

public void setAttribute(java.lang.String value)
Set attribute.

setBeanName

public void setBeanName(java.lang.String value)
Set bean name.

getBeanName

public java.lang.String getBeanName()
Get bean name.

setBeanProperty

public void setBeanProperty(java.lang.String value)
Set bean property.

getBeanProperty

public java.lang.String getBeanProperty()
Get bean property.

setBeanScope

public void setBeanScope(java.lang.String value)
Set bean scope.

getBeanScope

public java.lang.String getBeanScope()
Get bean scope.

setFlush

public void setFlush(boolean flush)
Set flush.

getFlush

public boolean getFlush()
Get flush.

setFlush

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

setIgnore

public void setIgnore(boolean ignore)
Set ignore.

getIgnore

public boolean getIgnore()
Get ignore.

putAttribute

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

processNestedTag

public void processNestedTag(PutTag nestedTag)
                      throws javax.servlet.jsp.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
Following copied from interface: org.apache.struts.taglib.tiles.PutTagParent
Parameters:
nestedTag - Nested tag to process.

processNestedTag

public void processNestedTag(PutListTag nestedTag)
                      throws javax.servlet.jsp.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
Following copied from interface: org.apache.struts.taglib.tiles.PutListTagParent
Parameters:
nestedTag - Nested PutTag defining the attribute.

putAttribute

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

getCurrentContext

private ComponentContext getCurrentContext()
Get current component context.

getController

private Controller getController()
                          throws javax.servlet.jsp.JspException
Get instantiated Controller. Return controller denoted by controllerType, or null if controllerType is null.
Throws:
javax.servlet.jsp.JspException - If controller can't be created.

doStartTag

public int doStartTag()
               throws javax.servlet.jsp.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.
Overrides:
doStartTag in class javax.servlet.jsp.tagext.TagSupport

doEndTag

public int doEndTag()
             throws javax.servlet.jsp.JspException
Process the end tag by including the template. Simply call the handler doEndTag
Overrides:
doEndTag in class javax.servlet.jsp.tagext.TagSupport

createTagHandler

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

processObjectValue

public InsertTag.TagHandler processObjectValue(java.lang.Object value)
                                        throws javax.servlet.jsp.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.
Throws:
javax.servlet.jsp.JspException - - Throws by underlying nested call to processDefinitionName()

processName

public InsertTag.TagHandler processName(java.lang.String name)
                                 throws javax.servlet.jsp.JspException
Process name. Search in following order :
  • Component context - if found, process it as value.
  • definitions factory
  • URL
Returns:
appropriate tag handler.
Throws:
javax.servlet.jsp.JspException - - Throws by underlying nested call to processDefinitionName()

processUrl

public InsertTag.TagHandler processUrl(java.lang.String url)
                                throws javax.servlet.jsp.JspException
Process the url.
Throws:
javax.servlet.jsp.JspException - If failed to create controller

processDefinitionName

protected InsertTag.TagHandler processDefinitionName(java.lang.String name)
                                              throws javax.servlet.jsp.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.
Throws:
JspException- - NoSuchDefinitionException No Definition found for name.
JspException- - FactoryNotFoundException Can't find Definitions factory.
JspException- - DefinedComponentFactoryException General error in factory.
javax.servlet.jsp.JspException - InstantiationException Can't create requested controller

processDefinition

protected InsertTag.TagHandler processDefinition(ComponentDefinition definition)
                                          throws javax.servlet.jsp.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.
Throws:
javax.servlet.jsp.JspException - InstantiationException Can't create requested controller

processBean

protected InsertTag.TagHandler processBean(java.lang.String beanName,
                                           java.lang.String beanProperty,
                                           java.lang.String beanScope)
                                    throws javax.servlet.jsp.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.
Throws:
javax.servlet.jsp.JspException - - NoSuchDefinitionException No value associated to bean.
javax.servlet.jsp.JspException - an error occur while reading bean, or no definition found.
javax.servlet.jsp.JspException - - Throws by underlying nested call to processDefinitionName()

processAttribute

public InsertTag.TagHandler processAttribute(java.lang.String name)
                                      throws javax.servlet.jsp.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.
Throws:
javax.servlet.jsp.JspException - - NoSuchDefinitionException No Definition found for name.
javax.servlet.jsp.JspException - - Throws by underlying nested call to processDefinitionName()

processAsDefinitionOrURL

public InsertTag.TagHandler processAsDefinitionOrURL(java.lang.String name)
                                              throws javax.servlet.jsp.JspException
Try to process name as a definition, or as an URL if not found.
Parameters:
name - Name to process.
Returns:
appropriate TagHandler
Throws:
javax.servlet.jsp.JspException - InstantiationException Can't create requested controller

processTypedAttribute

public InsertTag.TagHandler processTypedAttribute(AttributeDefinition value)
                                           throws javax.servlet.jsp.JspException
Process typed attribute according to its type.
Parameters:
value - Typed attribute to process.
Returns:
appropriate TagHandler.
Throws:
javax.servlet.jsp.JspException - - Throws by underlying nested call to processDefinitionName()

doInclude

protected void doInclude(java.lang.String page)
                  throws javax.servlet.ServletException,
                         java.io.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
Throws:
javax.servlet.ServletException - - Thrown by call to pageContext.include()
java.io.IOException - - Thrown by call to pageContext.include()

userHasRole

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


Copyright � 2000-2005 - The Apache Software Foundation