Class Include

  • All Implemented Interfaces:
    java.lang.Cloneable, DirectiveConstants

    public class Include
    extends InputBase

    Pluggable directive that handles the #include() statement in VTL. This #include() can take multiple arguments of either StringLiteral or Reference.

    Notes:

    1. For security reasons, the included source material can only come from somewhere within the template root tree. If you want to include content from elsewhere on your disk, add extra template roots, or 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=<!-- #include error : include.output.errormsg.end= --> might be an excellent way to start...
    3. As noted above, #include() can take multiple arguments. Ex : #include('foo.vm' 'bar.vm' $foo) will include all three if valid to output without any special separator.
    Version:
    $Id: Include.java 746438 2009-02-21 05:41:24Z nbubna $
    • Field Detail

      • outputMsgStart

        private java.lang.String outputMsgStart
      • outputMsgEnd

        private java.lang.String outputMsgEnd
    • Constructor Detail

      • Include

        public Include()
    • Method Detail

      • getName

        public java.lang.String getName()
        Return name of this directive.
        Specified by:
        getName in class Directive
        Returns:
        The name of this directive.
      • getType

        public int getType()
        Return type of this directive.
        Specified by:
        getType in class Directive
        Returns:
        The type of this directive.
      • isScopeProvided

        public boolean isScopeProvided()
        Since there is no processing of content, there is never a need for an internal scope.
        Overrides:
        isScopeProvided in class Directive
        Returns:
        true if there will be a scope control injected into the context when rendering this directive.
      • 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.
        Parameters:
        writer -
        msg -
        Throws:
        java.io.IOException