net.sourceforge.stripes.tag
Class InputTagSupport

java.lang.Object
  extended by net.sourceforge.stripes.tag.StripesTagSupport
      extended by net.sourceforge.stripes.tag.HtmlTagSupport
          extended by net.sourceforge.stripes.tag.InputTagSupport
All Implemented Interfaces:
JspTag, Tag
Direct Known Subclasses:
InputButtonSupportTag, InputCheckBoxTag, InputFileTag, InputHiddenTag, InputLabelTag, InputOptionTag, InputRadioButtonTag, InputSelectTag, InputTextAreaTag, InputTextTag

public abstract class InputTagSupport
extends HtmlTagSupport

Parent class for all input tags in stripes. Provides support methods for retrieving all the attributes that are shared across form input tags. Also provides accessors for finding the specified "override" value and for finding the enclosing support tag.

Author:
Tim Fennell

Field Summary
protected  TagErrorRenderer errorRenderer
          The error renderer to be utilized for error output of this input tag
protected  List<ValidationError> fieldErrors
          A list of the errors related to this input tag instance
 
Fields inherited from class net.sourceforge.stripes.tag.StripesTagSupport
pageContext, parentTag
 
Fields inherited from interface javax.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
 
Constructor Summary
InputTagSupport()
           
 
Method Summary
abstract  int doEndInputTag()
          Abstract method implemented in child classes instead of doEndTag().
 int doEndTag()
          Final implementation of the doEndTag() method that allows the base InputTagSupport class to insert functionality before and after the tag performs it's doEndTag equivelant method.
abstract  int doStartInputTag()
          Abstract method implemented in child classes instead of doStartTag().
 int doStartTag()
          Final implementation of the doStartTag() method that allows the base InputTagSupport class to insert functionality before and after the tag performs it's doStartTag equivelant method.
protected  String format(Object input)
          Attempts to format an object using the Stripes formatting system.
protected  ActionBean getActionBean()
          Fetches the ActionBean associated with the form if one is present.
 String getDisabled()
           
 List<ValidationError> getFieldErrors()
          Access for the field errors that occured on the form input this tag represents
 String getFormatPattern()
          Returns the value set with setFormatPattern()
 String getFormatType()
          Returns the value set with setFormatAs()
protected  String getLocalizedFieldName()
          Fetches the localized name for this field if one exists in the resource bundle.
 String getName()
           
protected  Object getOverrideValueOrValues()
          Gets the value for this tag based on the current population strategy.
protected  FormTag getParentFormTag()
          Locates the enclosing stripes form tag.
protected  Object getSingleOverrideValue()
          Returns a single value for the the value of this field.
 String getSize()
           
protected  boolean isItemSelected(Object value, Object selected)
          Utility method for determining if a String value is contained within an Object, where the object may be either a String, String[], Object, Object[] or Collection.
protected  void loadErrors()
          Find errors that are related to the form field this input tag represents and place them in an instance variable to use during error rendering.
protected  void registerWithParentForm()
          Registers the field with the parent form within which it must be enclosed.
 void setDisabled(String disabled)
           
 void setFormatPattern(String formatPattern)
          Sets the named format pattern, or a custom format pattern.
 void setFormatType(String formatType)
          Sets the type of ouput to format, e.g.
 void setName(String name)
           
 void setSize(String size)
           
 
Methods inherited from class net.sourceforge.stripes.tag.HtmlTagSupport
evaluateExpression, get, getAccesskey, getAttributes, getBodyContent, getBodyContentAsString, getCssClass, getDir, getId, getLang, getOnblur, getOnchange, getOnclick, getOndblclick, getOnfocus, getOnkeydown, getOnkeypress, getOnkeyup, getOnmousedown, getOnmousemove, getOnmouseout, getOnmouseover, getOnmouseup, getOnselect, getStyle, getTabindex, getTitle, release, set, setAccesskey, setBodyContent, setClass, setCssClass, setDir, setId, setLang, setOnblur, setOnchange, setOnclick, setOndblclick, setOnfocus, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setOnselect, setStyle, setTabindex, setTitle, toString, writeAttributes, writeCloseTag, writeOpenTag, writeSingletonTag
 
Methods inherited from class net.sourceforge.stripes.tag.StripesTagSupport
getPageContext, getParent, getParentTag, setPageContext, setParent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

fieldErrors

protected List<ValidationError> fieldErrors
A list of the errors related to this input tag instance


errorRenderer

protected TagErrorRenderer errorRenderer
The error renderer to be utilized for error output of this input tag

Constructor Detail

InputTagSupport

public InputTagSupport()
Method Detail

setDisabled

public void setDisabled(String disabled)

getDisabled

public String getDisabled()

setName

public void setName(String name)

getName

public String getName()

setSize

public void setSize(String size)

getSize

public String getSize()

setFormatType

public void setFormatType(String formatType)
Sets the type of ouput to format, e.g. date or time.


getFormatType

public String getFormatType()
Returns the value set with setFormatAs()


setFormatPattern

public void setFormatPattern(String formatPattern)
Sets the named format pattern, or a custom format pattern.


getFormatPattern

public String getFormatPattern()
Returns the value set with setFormatPattern()


getOverrideValueOrValues

protected Object getOverrideValueOrValues()
                                   throws StripesJspException
Gets the value for this tag based on the current population strategy. The value returned could be a scalar value, or it could be an array or collection depending on what the population strategy finds. For example, if the user submitted multiple values for a checkbox, the default population strategy would return a String[] containg all submitted values.

Returns:
Object either a value/values for this tag or null
Throws:
StripesJspException - if the enclosing form tag (which is required at all times, and necessary to perform repopulation) cannot be located

getSingleOverrideValue

protected Object getSingleOverrideValue()
                                 throws StripesJspException
Returns a single value for the the value of this field. This can be used to ensure that only a single value is returned by the population strategy, which is useful in the case of text inputs etc. which can have only a single value.

Returns:
Object either a single value or null
Throws:
StripesJspException - if the enclosing form tag (which is required at all times, and necessary to perform repopulation) cannot be located

getParentFormTag

protected FormTag getParentFormTag()
                            throws StripesJspException

Locates the enclosing stripes form tag. If no form tag can be found, because the tag was not enclosed in one on the JSP, an exception is thrown.

Returns:
FormTag the enclosing form tag on the JSP
Throws:
StripesJspException - if an enclosing form tag cannot be found

isItemSelected

protected boolean isItemSelected(Object value,
                                 Object selected)
Utility method for determining if a String value is contained within an Object, where the object may be either a String, String[], Object, Object[] or Collection. Used primarily by the InputCheckBoxTag and InputSelectTag to determine if specific check boxes or options should be selected based on the values contained in the JSP, HttpServletRequest and the ActionBean.

Parameters:
value - the value that we are searching for
selected - a String, String[], Object, Object[] or Collection (of scalars) denoting the selected items
Returns:
boolean true if the String can be found, false otherwise

getLocalizedFieldName

protected String getLocalizedFieldName()
                                throws StripesJspException
Fetches the localized name for this field if one exists in the resource bundle. Relies on there being a "name" attribute on the tag, and the pageContext being set on the tag. First checks for a value of {actionPath}.{fieldName} in the specified bundle, and if that exists, returns it. If that does not exist, will look for just "fieldName".

Returns:
a localized field name if one can be found, or null if one cannot be found.
Throws:
StripesJspException

format

protected String format(Object input)
Attempts to format an object using the Stripes formatting system. If no formatter can be found, then a simple String.valueOf(input) will be returned.


loadErrors

protected void loadErrors()
                   throws StripesJspException
Find errors that are related to the form field this input tag represents and place them in an instance variable to use during error rendering.

Throws:
StripesJspException

getFieldErrors

public List<ValidationError> getFieldErrors()
Access for the field errors that occured on the form input this tag represents

Returns:
List the list of validation errors for this field

getActionBean

protected ActionBean getActionBean()
                            throws StripesJspException
Fetches the ActionBean associated with the form if one is present. An ActionBean will not be created (and hence not present) by default. An ActionBean will only be present if the current request got bound to the same ActionBean as the current form uses. E.g. if we are re-showing the page as the result of an error, or the same ActionBean is used for a "pre-Action" and the "post-action".

Returns:
ActionBean the ActionBean bound to the form if there is one
Throws:
StripesJspException

doStartTag

public final int doStartTag()
                     throws JspException
Final implementation of the doStartTag() method that allows the base InputTagSupport class to insert functionality before and after the tag performs it's doStartTag equivelant method. Finds errors related to this field and intercepts with a TagErrorRenderer if appropriate.

Specified by:
doStartTag in interface Tag
Specified by:
doStartTag in class StripesTagSupport
Returns:
int the value returned by the child class from doStartInputTag()
Throws:
JspException

registerWithParentForm

protected void registerWithParentForm()
                               throws StripesJspException
Registers the field with the parent form within which it must be enclosed.

Throws:
StripesJspException - if the parent form tag is not found

doStartInputTag

public abstract int doStartInputTag()
                             throws JspException
Abstract method implemented in child classes instead of doStartTag().

Throws:
JspException

doEndTag

public final int doEndTag()
                   throws JspException
Final implementation of the doEndTag() method that allows the base InputTagSupport class to insert functionality before and after the tag performs it's doEndTag equivelant method.

Specified by:
doEndTag in interface Tag
Specified by:
doEndTag in class StripesTagSupport
Returns:
int the value returned by the child class from doStartInputTag()
Throws:
JspException

doEndInputTag

public abstract int doEndInputTag()
                           throws JspException
Abstract method implemented in child classes instead of doEndTag().

Throws:
JspException


© Copyright 2005, Stripes Development Team.