Save This Page
Home » velocity-1.5 » org.apache.velocity.tools » view » servlet » [javadoc | source]
org.apache.velocity.tools.view.servlet
public class: ServletToolboxManager [javadoc | source]
java.lang.Object
   org.apache.velocity.tools.view.XMLToolboxManager
      org.apache.velocity.tools.view.servlet.ServletToolboxManager

All Implemented Interfaces:
    ToolboxManager

A toolbox manager for the servlet environment.

A toolbox manager is responsible for automatically filling the Velocity context with a set of view tools. This class provides the following features:

Configuration

The toolbox manager is configured through an XML-based configuration file. The configuration file is passed to the #load(java.io.InputStream input) method. The format is shown in the following example:

<?xml version="1.0"?>

<toolbox>
<tool>
<key>link</key>
<scope>request</scope>
<class>org.apache.velocity.tools.view.tools.LinkTool</class>
</tool>
<tool>
<key>date</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.DateTool</class>
</tool>
<data type="number">
<key>luckynumber</key>
<value>1.37</value>
</data>
<data type="string">
<key>greeting</key>
<value>Hello World!</value>
</data>
<xhtml>true</xhtml>
</toolbox>

The recommended location for the configuration file is the WEB-INF directory of the web application.

Field Summary
public static final  String SESSION_TOOLS_KEY     
protected static final  Log LOG     
Fields inherited from org.apache.velocity.tools.view.XMLToolboxManager:
LOG
Method from org.apache.velocity.tools.view.servlet.ServletToolboxManager Summary:
addData,   addTool,   getInstance,   getMutex,   getRuleSet,   getToolbox,   setCreateSession,   setXhtml
Methods from org.apache.velocity.tools.view.XMLToolboxManager:
addData,   addTool,   getRuleSet,   getToolbox,   getToolboxContext,   load,   validateToolInfo
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.velocity.tools.view.servlet.ServletToolboxManager Detail:
 public  void addData(ToolInfo info) 
    Overrides XMLToolboxManager to put data into appTools map
 public  void addTool(ToolInfo info) 
    Overrides XMLToolboxManager to separate tools by scope. For this to work, we obviously override getToolboxContext(Object) as well.
 public static synchronized ServletToolboxManager getInstance(ServletContext servletContext,
    String toolboxFile) 
    ServletToolboxManager factory method. This method will ensure there is exactly one ServletToolboxManager per xml toolbox configuration file.
 protected Object getMutex(HttpSession session) 
    Returns a mutex (lock object) unique to the specified session to allow for reliable synchronization on the session.
 protected RuleSet getRuleSet() 

    Retrieves the rule set Digester should use to parse and load the toolbox for this manager.

    The DTD corresponding to the ServletToolboxRuleSet is:

    <?xml version="1.0"?>
    <!ELEMENT toolbox (create-session?,xhtml?,tool*,data*,#PCDATA)>
    <!ELEMENT create-session (#CDATA)>
    <!ELEMENT xhtml (#CDATA)>
    <!ELEMENT tool (key,scope?,class,parameter*,#PCDATA)>
    <!ELEMENT data (key,value)>
    <!ATTLIST data type (string|number|boolean) "string">
    <!ELEMENT key (#CDATA)>
    <!ELEMENT scope (#CDATA)>
    <!ELEMENT class (#CDATA)>
    <!ELEMENT parameter (EMPTY)>
    <!ATTLIST parameter name CDATA #REQUIRED>
    <!ATTLIST parameter value CDATA #REQUIRED>
    <!ELEMENT value (#CDATA)>
    

 public Map getToolbox(Object initData) 
    Overrides XMLToolboxManager to handle the separate scopes. Application scope tools were initialized when the toolbox was loaded. Session scope tools are initialized once per session and stored in a map in the session attributes. Request scope tools are initialized on every request.
 public  void setCreateSession(boolean b) 

    Sets whether or not to create a new session when none exists for the current request and session-scoped tools have been defined for this toolbox.

    If true, then a call to #getToolboxContext(Object) will create a new session if none currently exists for this request and the toolbox has one or more session-scoped tools designed.

    If false, then a call to getToolboxContext(Object) will never create a new session for the current request. This effectively means that no session-scoped tools will be added to the ToolboxContext for a request that does not have a session object.

    The default value is true.
 public  void setXhtml(Boolean value) 

    Sets an application attribute to tell velocimacros and tools (especially the LinkTool) whether they should output XHTML or HTML.