org.apache.struts.taglib.html
Class OptionsTag

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

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

Tag for creating multiple <select> options from a collection. The associated values displayed to the user may optionally be specified by a second collection, or will be the same as the values themselves. Each 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.

See Also:
Serialized Form

Field Summary
protected  java.lang.String collection
          The name of the collection containing beans that have properties to provide both the values and the labels (identified by the property and labelProperty attributes).
protected  boolean filter
          Should the label values be filtered for HTML sensitive characters?
protected  java.lang.String labelName
          The name of the bean containing the labels collection.
protected  java.lang.String labelProperty
          The bean property containing the labels collection.
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.
 
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
OptionsTag()
           
 
Method Summary
protected  void addOption(java.lang.StringBuffer sb, java.lang.String value, java.lang.String label, boolean matched)
          Add an option element to the specified StringBuffer based on the specified parameters.
 int doEndTag()
          Process the end of this tag.
 int doStartTag()
          Process the start of this tag.
 java.lang.String getCollection()
           
 boolean getFilter()
           
protected  java.util.Iterator getIterator(java.lang.String name, java.lang.String property)
          Return an iterator for the option labels or values, based on our configured properties.
 java.lang.String getLabelName()
           
 java.lang.String getLabelProperty()
           
 java.lang.String getName()
           
 java.lang.String getProperty()
           
 java.lang.String getStyle()
           
 java.lang.String getStyleClass()
           
 void release()
          Release any acquired resources.
 void setCollection(java.lang.String collection)
           
 void setFilter(boolean filter)
           
 void setLabelName(java.lang.String labelName)
           
 void setLabelProperty(java.lang.String labelProperty)
           
 void setName(java.lang.String name)
           
 void setProperty(java.lang.String property)
           
 void setStyle(java.lang.String style)
           
 void setStyleClass(java.lang.String styleClass)
           
 
Methods inherited from class javax.servlet.jsp.tagext.TagSupport
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.

collection

protected java.lang.String collection
The name of the collection containing beans that have properties to provide both the values and the labels (identified by the property and labelProperty attributes).

filter

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

labelName

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

labelProperty

protected java.lang.String labelProperty
The bean property containing the labels collection.

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.
Constructor Detail

OptionsTag

public OptionsTag()
Method Detail

getCollection

public java.lang.String getCollection()

setCollection

public void setCollection(java.lang.String collection)

getFilter

public boolean getFilter()

setFilter

public void setFilter(boolean filter)

getLabelName

public java.lang.String getLabelName()

setLabelName

public void setLabelName(java.lang.String labelName)

getLabelProperty

public java.lang.String getLabelProperty()

setLabelProperty

public void setLabelProperty(java.lang.String labelProperty)

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)

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

doEndTag

public int doEndTag()
             throws javax.servlet.jsp.JspException
Process the end of this tag.
Overrides:
doEndTag 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 value,
                         java.lang.String label,
                         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.String name,
                                         java.lang.String property)
                                  throws javax.servlet.jsp.JspException
Return an iterator for the option labels or values, based on our configured properties.
Parameters:
name - Name of the bean attribute (if any)
property - Name of the bean property (if any)
Throws:
javax.servlet.jsp.JspException - if an error occurs


Copyright 2000-2006 - The Apache Software Foundation