husted 2002/07/07 16:27:57
Modified: src/share/org/apache/struts/taglib/html RadioTag.java
Log:
Add idName attribute to RadioTag so that it is easy to use with an iterator.
Revision Changes Path
1.13 +60 -4
jakarta-struts/src/share/org/apache/struts/taglib/html/RadioTag.java
Index: RadioTag.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/RadioTag.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- RadioTag.java 25 Jun 2002 00:45:41 -0000 1.12
+++ RadioTag.java 7 Jul 2002 23:27:57 -0000 1.13
@@ -77,6 +77,7 @@
* Tag for input fields of type "radio".
*
* @author Craig R. McClanahan
+ * @author Ted Husted
* @version $Revision$ $Date$
*/
@@ -125,6 +126,20 @@
protected String value = null;
+ /**
+ * Name of the bean (in some scope) that will return the
+ * value of the radio tag.
+ * <p>
+ * If an iterator is used to render a series of radio tags,
+ * this field may be used to specify the name of the bean
+ * exposed by the iterator. In this case, the value attribute is
+ * used as the name of a property on the <code>idName</code> bean
+ * that returns the value of the radio tag in this iteration.
+ */
+ protected String idName = null;
+
+
+
// ------------------------------------------------------------- Properties
@@ -172,6 +187,32 @@
}
+
+ /**
+ * Return the idName.
+ * @since Struts 1.1
+ */
+ public String getIdName() {
+
+ return (this.idName);
+
+ }
+
+
+ /**
+ * Set the idName.
+ * @since Struts 1.1
+ *
+ * @param value The new idName
+ */
+ public void setIdName(String idName) {
+
+ this.idName=idName;
+
+ }
+
+
+
// --------------------------------------------------------- Public Methods
@@ -190,9 +231,22 @@
throw new JspException
(messages.getMessage("getter.bean", name));
try {
+
current = BeanUtils.getProperty(bean, property);
if (current == null)
current = "";
+
+ // @since Struts 1.1
+ if (idName != null) {
+ Object idBean = pageContext.findAttribute(idName);
+ if (idBean == null)
+ throw new JspException
+ (messages.getMessage("getter.bean", idName));
+ value = BeanUtils.getProperty(idBean, value);
+ if (value == null) value = "";
+ }
+
+
} catch (IllegalAccessException e) {
throw new JspException
(messages.getMessage("getter.access", property, name));
@@ -205,6 +259,8 @@
throw new JspException
(messages.getMessage("getter.method", property, name));
}
+
+
// Create an appropriate "input" element based on our parameters
StringBuffer results = new StringBuffer("<input type=\"radio\"");
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>