org.apache.struts.taglib.html
Class OptionsCollectionTag

java.lang.Object
  |
  +--javax.servlet.jsp.tagext.TagSupport
        |
        +--org.apache.struts.taglib.html.OptionsCollectionTag
All Implemented Interfaces:
java.io.Serializable, javax.servlet.jsp.tagext.Tag
Direct Known Subclasses:
NestedOptionsCollectionTag

public class OptionsCollectionTag
extends javax.servlet.jsp.tagext.TagSupport

Tag for creating multiple <select> options from a collection. The collection may be part of the enclosing form, or may be independent of the form. Each element of the collection must expose a 'label' and a 'value', the property names of which are configurable by attributes of this tag.

The collection may be an array of objects, a Collection, an Enumeration, an Iterator, or a Map.

NOTE - This tag requires a Java2 (JDK 1.2 or later) platform.

Since:
Struts 1.1
Version:
$Rev: 56513 $ $Date: 2004-11-03 19:20:47 +0000 (Wed, 03 Nov 2004) $
See Also:
Serialized Form

Field Summary
protected  boolean filter
          Should the label values be filtered for HTML sensitive characters?
protected  java.lang.String label
          The name of the bean property containing the label.
protected static MessageResources messages
          The message resources for this package.
protected  java.lang.String name
          The name of the bean containing the values collection.
protected  java.lang.String property
          The name of the property to use to build the values collection.
private  java.lang.String style
          The style associated with this tag.
private  java.lang.String styleClass
          The named style class associated with this tag.
protected  java.lang.String value
          The name of the bean property containing the value.
 
Fields inherited from class javax.servlet.jsp.tagext.TagSupport
id, pageContext, parent, values
 
Fields inherited from interface javax.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
 
Constructor Summary
OptionsCollectionTag()
           
 
Method Summary
protected  void addOption(java.lang.StringBuffer sb, java.lang.String label, java.lang.String value, boolean matched)
          Add an option element to the specified StringBuffer based on the specified parameters.
 int doStartTag()
          Process the start of this tag.
 boolean getFilter()
           
protected  java.util.Iterator getIterator(java.lang.Object collection)
          Return an iterator for the options collection.
 java.lang.String getLabel()
           
 java.lang.String getName()
           
 java.lang.String getProperty()
           
 java.lang.String getStyle()
           
 java.lang.String getStyleClass()
           
 java.lang.String getValue()
           
 void release()
          Release any acquired resources.
 void setFilter(boolean filter)
           
 void setLabel(java.lang.String label)
           
 void setName(java.lang.String name)
           
 void setProperty(java.lang.String property)
           
 void setStyle(java.lang.String style)
           
 void setStyleClass(java.lang.String styleClass)
           
 void setValue(java.lang.String value)
           
 
Methods inherited from class javax.servlet.jsp.tagext.TagSupport
doEndTag, findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

messages

protected static MessageResources messages
The message resources for this package.

filter

protected boolean filter
Should the label values be filtered for HTML sensitive characters?

label

protected java.lang.String label
The name of the bean property containing the label.

name

protected java.lang.String name
The name of the bean containing the values collection.

property

protected java.lang.String property
The name of the property to use to build the values collection.

style

private java.lang.String style
The style associated with this tag.

styleClass

private java.lang.String styleClass
The named style class associated with this tag.

value

protected java.lang.String value
The name of the bean property containing the value.
Constructor Detail

OptionsCollectionTag

public OptionsCollectionTag()
Method Detail

getFilter

public boolean getFilter()

setFilter

public void setFilter(boolean filter)

getLabel

public java.lang.String getLabel()

setLabel

public void setLabel(java.lang.String label)

getName

public java.lang.String getName()

setName

public void setName(java.lang.String name)

getProperty

public java.lang.String getProperty()

setProperty

public void setProperty(java.lang.String property)

getStyle

public java.lang.String getStyle()

setStyle

public void setStyle(java.lang.String style)

getStyleClass

public java.lang.String getStyleClass()

setStyleClass

public void setStyleClass(java.lang.String styleClass)

getValue

public java.lang.String getValue()

setValue

public void setValue(java.lang.String value)

doStartTag

public int doStartTag()
               throws javax.servlet.jsp.JspException
Process the start of this tag.
Overrides:
doStartTag in class javax.servlet.jsp.tagext.TagSupport
Throws:
javax.servlet.jsp.JspException - if a JSP exception has occurred

release

public void release()
Release any acquired resources.
Overrides:
release in class javax.servlet.jsp.tagext.TagSupport

addOption

protected void addOption(java.lang.StringBuffer sb,
                         java.lang.String label,
                         java.lang.String value,
                         boolean matched)
Add an option element to the specified StringBuffer based on the specified parameters.

Note that this tag specifically does not support the styleId tag attribute, which causes the HTML id attribute to be emitted. This is because the HTML specification states that all "id" attributes in a document have to be unique. This tag will likely generate more than one option element element, but it cannot use the same id value. It's conceivable some sort of mechanism to supply an array of id values could be devised, but that doesn't seem to be worth the trouble.

Parameters:
sb - StringBuffer accumulating our results
value - Value to be returned to the server for this option
label - Value to be shown to the user for this option
matched - Should this value be marked as selected?

getIterator

protected java.util.Iterator getIterator(java.lang.Object collection)
                                  throws javax.servlet.jsp.JspException
Return an iterator for the options collection.
Parameters:
collection - Collection to be iterated over
Throws:
javax.servlet.jsp.JspException - if an error occurs


Copyright 2000-2006 - The Apache Software Foundation