org.seasar.velocity.tools
クラス S2ServletToolboxManager

java.lang.Object
  上位を拡張 org.apache.velocity.tools.view.XMLToolboxManager
      上位を拡張 org.seasar.velocity.tools.S2ServletToolboxManager
すべての実装されたインタフェース:
org.apache.velocity.tools.view.ToolboxManager

public class S2ServletToolboxManager
extends org.apache.velocity.tools.view.XMLToolboxManager

NOTE 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.

バージョン:
$Id: ServletToolboxManager.java 488460 2006-12-19 00:00:35Z nbubna $
作成者:
Gabriel Sidler, Nathan Bubna, Geir Magnusson Jr., Henning P. Schmiedehausen

フィールドの概要
protected static org.apache.commons.logging.Log LOG
           
static String SESSION_TOOLS_KEY
           
 
メソッドの概要
 void addData(org.apache.velocity.tools.view.ToolInfo info)
          Overrides XMLToolboxManager to put data into appTools map
 void addTool(org.apache.velocity.tools.view.ToolInfo info)
          Overrides XMLToolboxManager to separate tools by scope.
static S2ServletToolboxManager getInstance(javax.servlet.ServletContext servletContext, String toolboxFile)
          ServletToolboxManager factory method.
protected  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.
 Map getToolbox(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(Boolean value)
          Sets an application attribute to tell velocimacros and tools (especially the LinkTool) whether they should output XHTML or HTML.
protected  boolean validateToolInfo(org.apache.velocity.tools.view.ToolInfo info)
          Ensures that application-scoped tools do not have request path restrictions set for them, as those will not be enforced.
 
クラス org.apache.velocity.tools.view.XMLToolboxManager から継承されたメソッド
load, load
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

SESSION_TOOLS_KEY

public static final String SESSION_TOOLS_KEY

LOG

protected static final org.apache.commons.logging.Log LOG
メソッドの詳細

getInstance

public static S2ServletToolboxManager getInstance(javax.servlet.ServletContext servletContext,
                                                  String toolboxFile)
ServletToolboxManager factory method. This method will ensure there is exactly one ServletToolboxManager per xml toolbox configuration file.


setCreateSession

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.


setXhtml

public void setXhtml(Boolean value)

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

導入されたバージョン:
VelocityTools 1.1
関連項目:
ViewContext.XHTML

getRuleSet

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)>
 

オーバーライド:
クラス org.apache.velocity.tools.view.XMLToolboxManager 内の getRuleSet
導入されたバージョン:
VelocityTools 1.1

validateToolInfo

protected boolean validateToolInfo(org.apache.velocity.tools.view.ToolInfo info)
Ensures that application-scoped tools do not have request path restrictions set for them, as those will not be enforced.

オーバーライド:
クラス org.apache.velocity.tools.view.XMLToolboxManager 内の validateToolInfo
パラメータ:
info - a ToolInfo object
戻り値:
true if the ToolInfo is valid
導入されたバージョン:
VelocityTools 1.3

addTool

public void addTool(org.apache.velocity.tools.view.ToolInfo info)
Overrides XMLToolboxManager to separate tools by scope. For this to work, we obviously override getToolbox(Object) as well.

定義:
インタフェース org.apache.velocity.tools.view.ToolboxManager 内の addTool
オーバーライド:
クラス org.apache.velocity.tools.view.XMLToolboxManager 内の addTool

addData

public void addData(org.apache.velocity.tools.view.ToolInfo info)
Overrides XMLToolboxManager to put data into appTools map

定義:
インタフェース org.apache.velocity.tools.view.ToolboxManager 内の addData
オーバーライド:
クラス org.apache.velocity.tools.view.XMLToolboxManager 内の addData

getToolbox

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.

定義:
インタフェース org.apache.velocity.tools.view.ToolboxManager 内の getToolbox
オーバーライド:
クラス org.apache.velocity.tools.view.XMLToolboxManager 内の getToolbox
パラメータ:
initData - the ViewContext for the current servlet request

getMutex

protected 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.



Copyright © 2004-2008 The Seasar Foundation. All Rights Reserved.