org.apache.velocity.runtime.directive
Class  Include
java.lang.Object
  |
  +--org.apache.velocity.runtime.directive.Directive
        |
        +--org.apache.velocity.runtime.directive.Include
- All Implemented Interfaces: 
 - java.lang.Cloneable, DirectiveConstants
 
- public class Include
- extends Directive
  
Pluggable directive that handles the #include() statement in VTL. 
 This #include() can take multiple arguments of either 
 StringLiteral or Reference.
 Notes:
 -----
  1) The included source material can only come from somewhere in 
    the TemplateRoot tree for security reasons. There is no way 
    around this.  If you want to include content from elsewhere on
    your disk, use a link from somwhere under Template Root to that 
    content.
  2) By default, there is no output to the render stream in the event of
    a problem.  You can override this behavior with two property values :
       include.output.errormsg.start
       include.output.errormsg.end
     If both are defined in velocity.properties, they will be used to
     in the render output to bracket the arg string that caused the 
     problem.
     Ex. : if you are working in html then
       include.output.errormsg.start=
     might be an excellent way to start...
  3) As noted above, #include() can take multiple arguments.
    Ex : #include( "foo.vm" "bar.vm" $foo )
    will simply include all three if valid to output w/o any
    special separator.
- Version: 
 - $Id: Include.java,v 1.23 2001/10/22 03:53:24 jon Exp $
 
- Author: 
 - Geir Magnusson Jr., Jason van Zyl, Kasper Nielsen
 
 
 
 
 
 
 
| Methods inherited from class java.lang.Object | 
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait | 
 
outputMsgStart
private java.lang.String outputMsgStart
outputMsgEnd
private java.lang.String outputMsgEnd
Include
public Include()
getName
public java.lang.String getName()
- Return name of this directive.
- Overrides:
 getName in class Directive
 
 
getType
public int getType()
- Return type of this directive.
- Overrides:
 getType in class Directive
 
 
init
public void init(RuntimeServices rs,
                 InternalContextAdapter context,
                 Node node)
          throws java.lang.Exception
- simple init - init the tree and get the elementKey from
  the AST
- Overrides:
 init in class Directive
 
 
render
public boolean render(InternalContextAdapter context,
                      java.io.Writer writer,
                      Node node)
               throws java.io.IOException,
                      MethodInvocationException,
                      ResourceNotFoundException
- iterates through the argument list and renders every
  argument that is appropriate.  Any non appropriate
  arguments are logged, but render() continues.
- Overrides:
 render in class Directive
 
 
renderOutput
private boolean renderOutput(Node node,
                             InternalContextAdapter context,
                             java.io.Writer writer)
                      throws java.io.IOException,
                             MethodInvocationException,
                             ResourceNotFoundException
- does the actual rendering of the included file
- Parameters:
 node - AST argument of type StringLiteral or Referencecontext - valid context so we can render Referenceswriter - output Writer- Returns:
 - boolean success or failure.  failures are logged
 
 
 
outputErrorToStream
private void outputErrorToStream(java.io.Writer writer,
                                 java.lang.String msg)
                          throws java.io.IOException
- Puts a message to the render output stream if ERRORMSG_START / END
  are valid property strings.  Mainly used for end-user template
  debugging.
 
Copyright © 2003 Apache Software Foundation. All Rights Reserved.