|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.velocity.tools.view.XMLToolboxManager
org.apache.velocity.tools.view.servlet.ServletToolboxManager
public class ServletToolboxManager
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 XMLToolboxManager.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 | |
---|---|
private java.util.Map |
appTools
|
private boolean |
createSession
|
protected static org.apache.commons.logging.Log |
LOG
|
private static java.util.HashMap |
managersMap
|
private java.util.ArrayList |
requestToolInfo
|
private javax.servlet.ServletContext |
servletContext
|
private static org.apache.commons.digester.RuleSet |
servletRuleSet
|
static java.lang.String |
SESSION_TOOLS_KEY
|
private java.util.ArrayList |
sessionToolInfo
|
Constructor Summary | |
---|---|
protected |
ServletToolboxManager(javax.servlet.ServletContext servletContext)
Use getInstance(ServletContext,String) instead to ensure there is exactly one ServletToolboxManager per xml toolbox configuration file. |
Method Summary | |
---|---|
void |
addData(ToolInfo info)
Overrides XMLToolboxManager to put data into appTools map |
void |
addTool(ToolInfo info)
Overrides XMLToolboxManager to separate tools by scope. |
static ServletToolboxManager |
getInstance(javax.servlet.ServletContext servletContext,
java.lang.String toolboxFile)
ServletToolboxManager factory method. |
protected java.lang.Object |
getMutex(javax.servlet.http.HttpSession session)
Returns a mutex (lock object) unique to the specified session to allow for reliable synchronization on the session. |
protected org.apache.commons.digester.RuleSet |
getRuleSet()
Retrieves the rule set Digester should use to parse and load the toolbox for this manager. |
java.util.Map |
getToolbox(java.lang.Object initData)
Overrides XMLToolboxManager to handle the separate scopes. |
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. |
void |
setXhtml(java.lang.Boolean value)
Sets an application attribute to tell velocimacros and tools (especially the LinkTool) whether they should output XHTML or HTML. |
protected boolean |
validateToolInfo(ToolInfo info)
Ensures that application-scoped tools do not have request path restrictions set for them, as those will not be enforced. |
Methods inherited from class org.apache.velocity.tools.view.XMLToolboxManager |
---|
load, load |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String SESSION_TOOLS_KEY
protected static final org.apache.commons.logging.Log LOG
private javax.servlet.ServletContext servletContext
private java.util.Map appTools
private java.util.ArrayList sessionToolInfo
private java.util.ArrayList requestToolInfo
private boolean createSession
private static java.util.HashMap managersMap
private static org.apache.commons.digester.RuleSet servletRuleSet
Constructor Detail |
---|
protected ServletToolboxManager(javax.servlet.ServletContext servletContext)
Method Detail |
---|
public static ServletToolboxManager getInstance(javax.servlet.ServletContext servletContext, java.lang.String toolboxFile)
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 getToolbox(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 getToolbox(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(java.lang.Boolean value)
Sets an application attribute to tell velocimacros and tools (especially the LinkTool) whether they should output XHTML or HTML.
ViewContext.XHTML
protected org.apache.commons.digester.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)>
getRuleSet
in class XMLToolboxManager
protected boolean validateToolInfo(ToolInfo info)
validateToolInfo
in class XMLToolboxManager
info
- a ToolInfo object
public void addTool(ToolInfo info)
addTool
in interface ToolboxManager
addTool
in class XMLToolboxManager
public void addData(ToolInfo info)
addData
in interface ToolboxManager
addData
in class XMLToolboxManager
info
- An object that implements ToolInfopublic java.util.Map getToolbox(java.lang.Object initData)
getToolbox
in interface ToolboxManager
getToolbox
in class XMLToolboxManager
initData
- the ViewContext
for the current servlet request
protected java.lang.Object getMutex(javax.servlet.http.HttpSession session)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |