You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@locus.apache.org on 2000/07/17 00:29:11 UTC
cvs commit: jakarta-struts/src/share/org/apache/struts/util BeanUtils.java
craigmcc 00/07/16 15:29:11
Modified: src/share/org/apache/struts/taglib BaseFieldTag.java
ButtonTag.java CancelTag.java CheckboxTag.java
EncodeRedirectURLTag.java EncodeURLTag.java
EnumerateTag.java FormTag.java GetPropertyTag.java
HtmlPropertyTag.java IfPropertyEqualsTag.java
IfPropertyNotEqualsTag.java IterateTag.java
Link1Tag.java LinkTag.java LocalStrings.properties
MessageTag.java OptionTag.java OptionsTag.java
ParameterTag.java PropertyTag.java RadioTag.java
RedirectTag.java ResetTag.java SelectTag.java
SubmitTag.java TextareaTag.java
src/share/org/apache/struts/util BeanUtils.java
Log:
Modify all tags that use reflection for calling property getters on beans
to use the shared logic (in BeanUtils) that consistently uses the
JavaBeans introspection for identifying property getter method names, as
well as takes advantage of the reflection caching that is being done.
Refine the message keys for all custom tags to share messages that should
be shared under generic names.
Revision Changes Path
1.6 +11 -18 jakarta-struts/src/share/org/apache/struts/taglib/BaseFieldTag.java
Index: BaseFieldTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/BaseFieldTag.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- BaseFieldTag.java 2000/06/30 16:50:26 1.5
+++ BaseFieldTag.java 2000/07/16 22:29:04 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/BaseFieldTag.java,v 1.5 2000/06/30 16:50:26 craigmcc Exp $
- * $Revision: 1.5 $
- * $Date: 2000/06/30 16:50:26 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/BaseFieldTag.java,v 1.6 2000/07/16 22:29:04 craigmcc Exp $
+ * $Revision: 1.6 $
+ * $Date: 2000/07/16 22:29:04 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
@@ -77,7 +76,7 @@
* Convenience base class for the various input tags for text fields.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2000/06/30 16:50:26 $
+ * @version $Revision: 1.6 $ $Date: 2000/07/16 22:29:04 $
*/
public abstract class BaseFieldTag extends BaseInputTag {
@@ -136,24 +135,19 @@
Object bean = pageContext.findAttribute(Constants.BEAN_KEY);
if (bean == null)
throw new JspException
- (messages.getMessage("baseFieldTag.missing", property));
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
- Object value = null;
+ (messages.getMessage("getter.bean", Constants.BEAN_KEY));
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- value = method.invoke(bean, new Object[0]);
+ value = BeanUtils.getScalarProperty(bean, property);
if (value == null)
value = "";
- results.append(value);
+ results.append(BeanUtils.filter(value));
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("baseFieldTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
}
results.append("\"");
@@ -167,14 +161,13 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
return (EVAL_BODY_TAG);
}
-
}
1.4 +5 -5 jakarta-struts/src/share/org/apache/struts/taglib/ButtonTag.java
Index: ButtonTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ButtonTag.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ButtonTag.java 2000/06/24 03:16:11 1.3
+++ ButtonTag.java 2000/07/16 22:29:04 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ButtonTag.java,v 1.3 2000/06/24 03:16:11 craigmcc Exp $
- * $Revision: 1.3 $
- * $Date: 2000/06/24 03:16:11 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ButtonTag.java,v 1.4 2000/07/16 22:29:04 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2000/07/16 22:29:04 $
*
* ====================================================================
*
@@ -74,7 +74,7 @@
* Renders an HTML BUTTON tag within the Struts framework.
*
* @author Don Clasen
- * @version $Revision: 1.3 $ $Date: 2000/06/24 03:16:11 $
+ * @version $Revision: 1.4 $ $Date: 2000/07/16 22:29:04 $
*/
public final class ButtonTag extends BaseHandlerTag {
@@ -186,7 +186,7 @@
}
catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
return (EVAL_PAGE);
1.3 +5 -5 jakarta-struts/src/share/org/apache/struts/taglib/CancelTag.java
Index: CancelTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/CancelTag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CancelTag.java 2000/06/24 03:16:11 1.2
+++ CancelTag.java 2000/07/16 22:29:04 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/CancelTag.java,v 1.2 2000/06/24 03:16:11 craigmcc Exp $
- * $Revision: 1.2 $
- * $Date: 2000/06/24 03:16:11 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/CancelTag.java,v 1.3 2000/07/16 22:29:04 craigmcc Exp $
+ * $Revision: 1.3 $
+ * $Date: 2000/07/16 22:29:04 $
*
* ====================================================================
*
@@ -75,7 +75,7 @@
* Tag for input fields of type "cancel".
*
* @author Jeff Hutchinson
- * @version $Revision: 1.2 $ $Date: 2000/06/24 03:16:11 $
+ * @version $Revision: 1.3 $ $Date: 2000/07/16 22:29:04 $
*/
public final class CancelTag extends BaseHandlerTag {
@@ -193,7 +193,7 @@
}
catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
return (EVAL_PAGE);
1.6 +11 -16 jakarta-struts/src/share/org/apache/struts/taglib/CheckboxTag.java
Index: CheckboxTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/CheckboxTag.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- CheckboxTag.java 2000/06/24 03:16:11 1.5
+++ CheckboxTag.java 2000/07/16 22:29:04 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/CheckboxTag.java,v 1.5 2000/06/24 03:16:11 craigmcc Exp $
- * $Revision: 1.5 $
- * $Date: 2000/06/24 03:16:11 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/CheckboxTag.java,v 1.6 2000/07/16 22:29:04 craigmcc Exp $
+ * $Revision: 1.6 $
+ * $Date: 2000/07/16 22:29:04 $
*
* ====================================================================
*
@@ -63,7 +63,6 @@
package org.apache.struts.taglib;
-import java.lang.reflect.Method;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
@@ -76,7 +75,7 @@
* Tag for input fields of type "checkbox".
*
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2000/06/24 03:16:11 $
+ * @version $Revision: 1.6 $ $Date: 2000/07/16 22:29:04 $
*/
public final class CheckboxTag extends BaseHandlerTag {
@@ -182,22 +181,18 @@
Object bean = pageContext.findAttribute(Constants.BEAN_KEY);
if (bean == null)
throw new JspException
- (messages.getMessage("baseFieldTag.missing", property));
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
+ (messages.getMessage("getter.bean", Constants.BEAN_KEY));
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- value = (String) method.invoke(bean, new Object[0]).toString();
+ value = BeanUtils.getScalarProperty(bean, property);
if (value == null)
value = "";
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("baseFieldTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
}
if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("yes")
@@ -213,7 +208,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
@@ -238,7 +233,7 @@
writer.println(bodyContent.getString().trim());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue evaluating this page
1.2 +4 -4 jakarta-struts/src/share/org/apache/struts/taglib/EncodeRedirectURLTag.java
Index: EncodeRedirectURLTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/EncodeRedirectURLTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- EncodeRedirectURLTag.java 2000/05/31 22:28:11 1.1
+++ EncodeRedirectURLTag.java 2000/07/16 22:29:04 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/EncodeRedirectURLTag.java,v 1.1 2000/05/31 22:28:11 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/05/31 22:28:11 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/EncodeRedirectURLTag.java,v 1.2 2000/07/16 22:29:04 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2000/07/16 22:29:04 $
*
* ====================================================================
*
@@ -80,7 +80,7 @@
* HTML-related characters do not cause difficulties.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/05/31 22:28:11 $
+ * @version $Revision: 1.2 $ $Date: 2000/07/16 22:29:04 $
*/
public final class EncodeRedirectURLTag extends TagSupport {
@@ -162,7 +162,7 @@
writer.print(encoded);
} catch (IOException e) {
throw new JspException
- (messages.getMessage("encodeUrl.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
1.2 +4 -4 jakarta-struts/src/share/org/apache/struts/taglib/EncodeURLTag.java
Index: EncodeURLTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/EncodeURLTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- EncodeURLTag.java 2000/05/31 22:28:11 1.1
+++ EncodeURLTag.java 2000/07/16 22:29:04 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/EncodeURLTag.java,v 1.1 2000/05/31 22:28:11 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/05/31 22:28:11 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/EncodeURLTag.java,v 1.2 2000/07/16 22:29:04 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2000/07/16 22:29:04 $
*
* ====================================================================
*
@@ -80,7 +80,7 @@
* HTML-related characters do not cause difficulties.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/05/31 22:28:11 $
+ * @version $Revision: 1.2 $ $Date: 2000/07/16 22:29:04 $
*/
public final class EncodeURLTag extends TagSupport {
@@ -162,7 +162,7 @@
writer.print(encoded);
} catch (IOException e) {
throw new JspException
- (messages.getMessage("encodeUrl.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
1.4 +13 -17 jakarta-struts/src/share/org/apache/struts/taglib/EnumerateTag.java
Index: EnumerateTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/EnumerateTag.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- EnumerateTag.java 2000/07/09 03:36:49 1.3
+++ EnumerateTag.java 2000/07/16 22:29:05 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/EnumerateTag.java,v 1.3 2000/07/09 03:36:49 craigmcc Exp $
- * $Revision: 1.3 $
- * $Date: 2000/07/09 03:36:49 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/EnumerateTag.java,v 1.4 2000/07/16 22:29:05 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2000/07/16 22:29:05 $
*
* ====================================================================
*
@@ -67,7 +67,6 @@
import java.util.Hashtable;
import java.util.Vector;
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
@@ -84,7 +83,7 @@
* <b>FIXME</b> - Should support Java2 collection classes as well!
*
* @author Craig R. McClanahan
- * @version $Revision: 1.3 $ $Date: 2000/07/09 03:36:49 $
+ * @version $Revision: 1.4 $ $Date: 2000/07/16 22:29:05 $
*/
public final class EnumerateTag extends BodyTagSupport {
@@ -313,24 +312,21 @@
Object bean = pageContext.findAttribute(name);
if (bean == null)
throw new JspException
- (messages.getMessage("enumerate.noBean", name));
+ (messages.getMessage("getter.bean", name));
if (property == null)
collection = bean;
else {
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method =
- bean.getClass().getMethod(methodName, paramTypes);
- collection = method.invoke(bean, new Object[0]);
+ collection = BeanUtils.getPropertyValue(bean, property);
}
if (collection == null)
throw new JspException
- (messages.getMessage("enumerate.noProperty",
- name, property));
+ (messages.getMessage("getter.property", property));
+ } catch (NoSuchMethodException e) {
+ throw new JspException
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("enumerate.noProperty",
- name, property));
+ (messages.getMessage("getter.result", property));
}
}
@@ -350,7 +346,7 @@
enumeration = ((Vector) collection).elements();
else
throw new JspException
- (messages.getMessage("enumerate.noCollection",
+ (messages.getMessage("enumerateTag.enumeration",
collection.toString()));
// Calculate the starting offset
@@ -445,7 +441,7 @@
out.print(bodyContent.getString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("enumerate.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
}
1.6 +7 -8 jakarta-struts/src/share/org/apache/struts/taglib/FormTag.java
Index: FormTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/FormTag.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FormTag.java 2000/06/26 16:44:58 1.5
+++ FormTag.java 2000/07/16 22:29:05 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/FormTag.java,v 1.5 2000/06/26 16:44:58 craigmcc Exp $
- * $Revision: 1.5 $
- * $Date: 2000/06/26 16:44:58 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/FormTag.java,v 1.6 2000/07/16 22:29:05 craigmcc Exp $
+ * $Revision: 1.6 $
+ * $Date: 2000/07/16 22:29:05 $
*
* ====================================================================
*
@@ -78,7 +78,7 @@
* properties correspond to the various fields of the form.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2000/06/26 16:44:58 $
+ * @version $Revision: 1.6 $ $Date: 2000/07/16 22:29:05 $
*/
public final class FormTag extends TagSupport {
@@ -465,7 +465,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("formTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Store this tag itself as a page attribute
@@ -479,7 +479,7 @@
if (bean == null) {
if (type == null)
throw new JspException
- (messages.getMessage("formTag.missing", name));
+ (messages.getMessage("getter.bean", name));
try {
Class clazz = Class.forName(type);
bean = clazz.newInstance();
@@ -498,7 +498,6 @@
}
-
/**
* Render the end of this form.
*
@@ -531,7 +530,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("formTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
1.2 +10 -13 jakarta-struts/src/share/org/apache/struts/taglib/GetPropertyTag.java
Index: GetPropertyTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/GetPropertyTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- GetPropertyTag.java 2000/05/31 22:28:12 1.1
+++ GetPropertyTag.java 2000/07/16 22:29:05 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/GetPropertyTag.java,v 1.1 2000/05/31 22:28:12 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/05/31 22:28:12 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/GetPropertyTag.java,v 1.2 2000/07/16 22:29:05 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2000/07/16 22:29:05 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
@@ -77,7 +76,7 @@
* Expose the value of a bean property as a scripting variable.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/05/31 22:28:12 $
+ * @version $Revision: 1.2 $ $Date: 2000/07/16 22:29:05 $
*/
public class GetPropertyTag extends TagSupport {
@@ -197,19 +196,17 @@
Object bean = pageContext.findAttribute(name);
if (bean == null)
throw new JspException
- (messages.getMessage("getProperty.noBean", name));
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = bean.getClass().getMethod(methodName, paramTypes);
- value = method.invoke(bean, new Object[0]);
+ (messages.getMessage("getter.bean", name));
+ value = BeanUtils.getPropertyValue(bean, property);
if (value == null)
throw new JspException
- (messages.getMessage("getProperty.noProperty",
- name, property));
+ (messages.getMessage("getter.property", property));
+ } catch (NoSuchMethodException e) {
+ throw new JspException
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("getProperty.noProperty",
- name, property));
+ (messages.getMessage("getter.result", property));
}
// Expose this as a scripting variable and continue
1.2 +9 -10 jakarta-struts/src/share/org/apache/struts/taglib/HtmlPropertyTag.java
Index: HtmlPropertyTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/HtmlPropertyTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HtmlPropertyTag.java 2000/05/31 22:28:11 1.1
+++ HtmlPropertyTag.java 2000/07/16 22:29:05 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/HtmlPropertyTag.java,v 1.1 2000/05/31 22:28:11 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/05/31 22:28:11 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/HtmlPropertyTag.java,v 1.2 2000/07/16 22:29:05 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2000/07/16 22:29:05 $
*
* ====================================================================
*
@@ -79,7 +79,7 @@
* HTML-related characters do not cause difficulties.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/05/31 22:28:11 $
+ * @version $Revision: 1.2 $ $Date: 2000/07/16 22:29:05 $
*/
public final class HtmlPropertyTag extends TagSupport {
@@ -182,7 +182,7 @@
Object bean = pageContext.findAttribute(name);
if (bean == null)
throw new JspException
- (messages.getMessage("htmlPropertyTag.bean", name));
+ (messages.getMessage("getter.bean", name));
// Acquire the requested property value
String methodName = "get" + BeanUtils.capitalize(property);
@@ -190,17 +190,16 @@
Method method = null;
Object value = null;
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- value = method.invoke(bean, new Object[0]);
+ value = BeanUtils.getPropertyValue(bean, property);
if (value == null)
value = "";
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("htmlPropertyTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("htmlPropertyTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
// Print this property value to our output writer, suitably encoded
@@ -209,7 +208,7 @@
writer.print(BeanUtils.filter(value.toString()));
} catch (IOException e) {
throw new JspException
- (messages.getMessage("htmlPropertyTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
1.2 +10 -16 jakarta-struts/src/share/org/apache/struts/taglib/IfPropertyEqualsTag.java
Index: IfPropertyEqualsTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/IfPropertyEqualsTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IfPropertyEqualsTag.java 2000/06/16 01:32:24 1.1
+++ IfPropertyEqualsTag.java 2000/07/16 22:29:05 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/IfPropertyEqualsTag.java,v 1.1 2000/06/16 01:32:24 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/06/16 01:32:24 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/IfPropertyEqualsTag.java,v 1.2 2000/07/16 22:29:05 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2000/07/16 22:29:05 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import org.apache.struts.util.BeanUtils;
@@ -76,7 +75,7 @@
* of the specified attribute (in any scope) has the specified value.
*
* @author Arun M. Thomas <ar...@ipin.com>
- * @version $Revision: 1.1 $ $Date: 2000/06/16 01:32:24 $
+ * @version $Revision: 1.2 $ $Date: 2000/07/16 22:29:05 $
*/
public class IfPropertyEqualsTag extends BaseAttributeTag {
@@ -164,24 +163,20 @@
// Test the requested condition
boolean equals = false;
- Object attribute = pageContext.getAttribute(name, getScopeId());
- if (attribute != null) {
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
- Object value = null;
+ Object bean = pageContext.getAttribute(name, getScopeId());
+ if (bean != null) {
+ String value = null;
try {
- method = attribute.getClass().getMethod(methodName, paramTypes);
- value = method.invoke(attribute, new Object[0]);
+ value = BeanUtils.getScalarProperty(bean, property);
if (value == null)
value = "";
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("htmlPropertyTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("htmlPropertyTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
equals = this.value.equals(value);
}
@@ -193,7 +188,6 @@
return (SKIP_BODY);
}
-
}
1.2 +10 -16 jakarta-struts/src/share/org/apache/struts/taglib/IfPropertyNotEqualsTag.java
Index: IfPropertyNotEqualsTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/IfPropertyNotEqualsTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IfPropertyNotEqualsTag.java 2000/06/16 01:32:24 1.1
+++ IfPropertyNotEqualsTag.java 2000/07/16 22:29:05 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/IfPropertyNotEqualsTag.java,v 1.1 2000/06/16 01:32:24 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/06/16 01:32:24 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/IfPropertyNotEqualsTag.java,v 1.2 2000/07/16 22:29:05 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2000/07/16 22:29:05 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import org.apache.struts.util.BeanUtils;
@@ -76,7 +75,7 @@
* of the specified attribute (in any scope) has the specified value.
*
* @author Arun M. Thomas <ar...@ipin.com>
- * @version $Revision: 1.1 $ $Date: 2000/06/16 01:32:24 $
+ * @version $Revision: 1.2 $ $Date: 2000/07/16 22:29:05 $
*/
public class IfPropertyNotEqualsTag extends BaseAttributeTag {
@@ -164,24 +163,20 @@
// Test the requested condition
boolean equals = false;
- Object attribute = pageContext.getAttribute(name, getScopeId());
- if (attribute != null) {
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
- Object value = null;
+ Object bean = pageContext.getAttribute(name, getScopeId());
+ if (bean != null) {
+ String value = null;
try {
- method = attribute.getClass().getMethod(methodName, paramTypes);
- value = method.invoke(attribute, new Object[0]);
+ value = BeanUtils.getScalarProperty(bean, property);
if (value == null)
value = "";
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("htmlPropertyTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("htmlPropertyTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
equals = this.value.equals(value);
}
@@ -193,7 +188,6 @@
return (SKIP_BODY);
}
-
}
1.5 +14 -19 jakarta-struts/src/share/org/apache/struts/taglib/IterateTag.java
Index: IterateTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/IterateTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- IterateTag.java 2000/07/09 03:36:49 1.4
+++ IterateTag.java 2000/07/16 22:29:05 1.5
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/IterateTag.java,v 1.4 2000/07/09 03:36:49 craigmcc Exp $
- * $Revision: 1.4 $
- * $Date: 2000/07/09 03:36:49 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/IterateTag.java,v 1.5 2000/07/16 22:29:05 craigmcc Exp $
+ * $Revision: 1.5 $
+ * $Date: 2000/07/16 22:29:05 $
*
* ====================================================================
*
@@ -68,7 +68,6 @@
import java.util.Iterator;
import java.util.Map;
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
@@ -87,7 +86,7 @@
* <b>NOTE</b> - This tag requires a Java2 (JDK 1.2 or later) platform.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.4 $ $Date: 2000/07/09 03:36:49 $
+ * @version $Revision: 1.5 $ $Date: 2000/07/16 22:29:05 $
*/
public final class IterateTag extends BodyTagSupport {
@@ -316,24 +315,20 @@
Object bean = pageContext.findAttribute(name);
if (bean == null)
throw new JspException
- (messages.getMessage("iterate.noBean", name));
+ (messages.getMessage("getter.bean", name));
if (property == null)
collection = bean;
- else {
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method =
- bean.getClass().getMethod(methodName, paramTypes);
- collection = method.invoke(bean, new Object[0]);
- }
+ else
+ collection = BeanUtils.getPropertyValue(bean, property);
if (collection == null)
throw new JspException
- (messages.getMessage("iterate.noProperty",
- name, property));
+ (messages.getMessage("getter.property", property));
+ } catch (NoSuchMethodException e) {
+ throw new JspException
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("iterate.noProperty",
- name, property));
+ (messages.getMessage("getter.result", property));
}
}
@@ -348,7 +343,7 @@
iterator = ((Map) collection).entrySet().iterator();
else
throw new JspException
- (messages.getMessage("iterate.noCollection",
+ (messages.getMessage("iterateTag.iterator",
collection.toString()));
// Calculate the starting offset
@@ -443,7 +438,7 @@
out.print(bodyContent.getString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("iterate.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
}
1.3 +15 -19 jakarta-struts/src/share/org/apache/struts/taglib/Link1Tag.java
Index: Link1Tag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/Link1Tag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Link1Tag.java 2000/06/30 16:20:59 1.2
+++ Link1Tag.java 2000/07/16 22:29:05 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/Link1Tag.java,v 1.2 2000/06/30 16:20:59 craigmcc Exp $
- * $Revision: 1.2 $
- * $Date: 2000/06/30 16:20:59 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/Link1Tag.java,v 1.3 2000/07/16 22:29:05 craigmcc Exp $
+ * $Revision: 1.3 $
+ * $Date: 2000/07/16 22:29:05 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import java.util.Dictionary;
import java.util.Enumeration;
import javax.servlet.http.HttpServletResponse;
@@ -82,7 +81,7 @@
* a Map, so that it works on JDK 1.1 platforms.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.2 $ $Date: 2000/06/30 16:20:59 $
+ * @version $Revision: 1.3 $ $Date: 2000/07/16 22:29:05 $
*/
public class Link1Tag extends TagSupport {
@@ -243,7 +242,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("encodeUrl.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Evaluate the body of this tag
@@ -267,7 +266,7 @@
writer.print("</a>");
} catch (IOException e) {
throw new JspException
- (messages.getMessage("encodeUrl.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
return (EVAL_PAGE);
@@ -289,7 +288,7 @@
// Just return the "href" attribute if there is no bean to look up
if ((property != null) && (name == null))
throw new JspException
- (messages.getMessage("linkTag.name"));
+ (messages.getMessage("getter.name"));
if (name == null)
return (href);
@@ -297,7 +296,7 @@
Object bean = pageContext.findAttribute(name);
if (bean == null)
throw new JspException
- (messages.getMessage("linkTag.bean", name));
+ (messages.getMessage("getter.bean", name));
Dictionary dictionary = null;
if (property == null) {
try {
@@ -307,25 +306,22 @@
(messages.getMessage("linkTag.type1"));
}
} else {
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- dictionary = (Dictionary) method.invoke(bean, new Object[0]);
- if (bean == null)
+ dictionary =
+ (Dictionary) BeanUtils.getPropertyValue(bean, property);
+ if (dictionary == null)
throw new JspException
- (messages.getMessage("linkTag.property", methodName));
+ (messages.getMessage("getter.property", property));
} catch (ClassCastException e) {
throw new JspException
(messages.getMessage("linkTag.type1"));
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("linkTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("linkTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
}
1.6 +14 -19 jakarta-struts/src/share/org/apache/struts/taglib/LinkTag.java
Index: LinkTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/LinkTag.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- LinkTag.java 2000/06/30 16:21:00 1.5
+++ LinkTag.java 2000/07/16 22:29:05 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/LinkTag.java,v 1.5 2000/06/30 16:21:00 craigmcc Exp $
- * $Revision: 1.5 $
- * $Date: 2000/06/30 16:21:00 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/LinkTag.java,v 1.6 2000/07/16 22:29:05 craigmcc Exp $
+ * $Revision: 1.6 $
+ * $Date: 2000/07/16 22:29:05 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.Map;
@@ -81,7 +80,7 @@
* Generate a URL-encoded hyperlink to the specified URI.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2000/06/30 16:21:00 $
+ * @version $Revision: 1.6 $ $Date: 2000/07/16 22:29:05 $
*/
public class LinkTag extends TagSupport {
@@ -242,7 +241,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("encodeUrl.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Evaluate the body of this tag
@@ -266,7 +265,7 @@
writer.print("</a>");
} catch (IOException e) {
throw new JspException
- (messages.getMessage("encodeUrl.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
return (EVAL_PAGE);
@@ -288,7 +287,7 @@
// Just return the "href" attribute if there is no bean to look up
if ((property != null) && (name == null))
throw new JspException
- (messages.getMessage("linkTag.name"));
+ (messages.getMessage("getter.name"));
if (name == null)
return (href);
@@ -296,7 +295,7 @@
Object bean = pageContext.findAttribute(name);
if (bean == null)
throw new JspException
- (messages.getMessage("linkTag.bean", name));
+ (messages.getMessage("getter.bean", name));
Map map = null;
if (property == null) {
try {
@@ -306,25 +305,21 @@
(messages.getMessage("linkTag.type"));
}
} else {
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- map = (Map) method.invoke(bean, new Object[0]);
- if (bean == null)
+ map = (Map) BeanUtils.getPropertyValue(bean, property);
+ if (map == null)
throw new JspException
- (messages.getMessage("linkTag.property", methodName));
+ (messages.getMessage("getter.property", property));
} catch (ClassCastException e) {
throw new JspException
(messages.getMessage("linkTag.type"));
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("linkTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("linkTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
}
1.7 +12 -32 jakarta-struts/src/share/org/apache/struts/taglib/LocalStrings.properties
Index: LocalStrings.properties
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/LocalStrings.properties,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- LocalStrings.properties 2000/06/30 16:21:00 1.6
+++ LocalStrings.properties 2000/07/16 22:29:05 1.7
@@ -1,42 +1,22 @@
-baseFieldTag.io=I/O error: {0}
-baseFieldTag.method=Object has no method named {0}
-baseFieldTag.missing=Missing bean for field {0}
-baseFieldTag.result=Exception calling method {0}: {1}
-encodeUrl.io=I/O error: {0}
-enumerate.io=I/O error: {0}
-enumerate.noBean=Cannot find attribute named {0}
-enumerate.noCollection=Cannot create enumeration for {0}
-enumerate.noProperty=Cannot find property {1} for bean attribute {0}
+common.io=Encountered input/output error: {1}
+enumerateTag.enumeration=Cannot create enumeration for {0}
formTag.create=Exception creating bean of class {0}: {1}
-formTag.io=I/O error: {0}
-formTag.missing=Missing bean for key {0}
forwardTag.forward=Error forwarding to page {0}: {1}
forwardTag.lookup=Cannot find global forward named {0}
forwardTag.redirect=Error redirecting to path {0}: {1}
-getMessageTag.io=I/O error: {0}
-getMessageTag.message=Missing message for key {0}
-getMessageTag.resources=Missing resources attribute {0}
-getProperty.noBean=Cannot find attribute named {0}
-getProperty.noProperty=Cannot find property {1} for bean attribute {0}
-htmlPropertyTag.bean=Missing object for attribute {0}
-htmlPropertyTag.io=I/O error: {0}
-htmlPropertyTag.method=Object has no method named {0}
-htmlPropertyTag.result=Exception calling method {0}: {1}
+getter.bean=Cannot find bean under name {0}
+getter.method=No getter method available for property {0}
+getter.name=You must specify a name attribute if the property attribute is present
+getter.property=Property {0} returned a null value
+getter.result=Getter for property {0} threw exception: {1}
includeTag.include=Error including page {0}: {1}
includeTag.lookup=Cannot find global forward named {0}
-iterate.io=I/O error: {0}
-iterate.noBean=Cannot find attribute named {0}
-iterate.noCollection=Cannot create iterator for {0}
-iterate.noProperty=Cannot find property {1} for bean attribute {0}
-linkTag.bean=Missing object for attribute {0}
-linkTag.cast=Cannot cast attribute {0} to a Map
-linkTag.method=Object has no method named {0}
-linkTag.name=You must specify a name attribute if the property attribute is present
-linkTag.property=Method {0} returned null
-linkTag.result=Exception calling method {0}: {1}
+iterateTag.iterator=Cannot create iterator for {0}
linkTag.type=Object must be of type Map
linkTag.type1=Object must be of type Dictionary
+messageTag.message=Missing message for key {0}
+messageTag.resources=Missing resources attribute {0}
optionTag.select=Option tag must be nested in a Select tag
-optionsTag.noBean=Cannot find attribute named {0}
-optionsTag.noCollection=Cannot create iterator for {0}
+optionsTag.enumeration=Cannot create enumeration for {0}
+optionsTag.iterator=Cannot create iterator for {0}
optionsTag.select=Options tag must be nested in a Select tag
1.5 +7 -7 jakarta-struts/src/share/org/apache/struts/taglib/MessageTag.java
Index: MessageTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/MessageTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- MessageTag.java 2000/06/29 21:36:10 1.4
+++ MessageTag.java 2000/07/16 22:29:06 1.5
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/MessageTag.java,v 1.4 2000/06/29 21:36:10 craigmcc Exp $
- * $Revision: 1.4 $
- * $Date: 2000/06/29 21:36:10 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/MessageTag.java,v 1.5 2000/07/16 22:29:06 craigmcc Exp $
+ * $Revision: 1.5 $
+ * $Date: 2000/07/16 22:29:06 $
*
* ====================================================================
*
@@ -80,7 +80,7 @@
* <code>ActionServlet</code> implementation.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.4 $ $Date: 2000/06/29 21:36:10 $
+ * @version $Revision: 1.5 $ $Date: 2000/07/16 22:29:06 $
*/
public final class MessageTag extends TagSupport {
@@ -358,7 +358,7 @@
pageContext.getAttribute(bundle, PageContext.APPLICATION_SCOPE);
if (resources == null)
throw new JspException
- (messages.getMessage("getMessageTag.resources", bundle));
+ (messages.getMessage("messageTag.resources", bundle));
// Calculate the Locale we will be using
Locale locale = null;
@@ -383,7 +383,7 @@
String message = resources.getMessage(locale, key, args);
if (message == null)
throw new JspException
- (messages.getMessage("getMessageTag.message", key));
+ (messages.getMessage("messageTag.message", key));
// Print the retrieved message to our output writer
JspWriter writer = pageContext.getOut();
@@ -391,7 +391,7 @@
writer.print(message);
} catch (IOException e) {
throw new JspException
- (messages.getMessage("getMessageTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
1.2 +4 -4 jakarta-struts/src/share/org/apache/struts/taglib/OptionTag.java
Index: OptionTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/OptionTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- OptionTag.java 2000/05/31 22:28:12 1.1
+++ OptionTag.java 2000/07/16 22:29:06 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/OptionTag.java,v 1.1 2000/05/31 22:28:12 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/05/31 22:28:12 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/OptionTag.java,v 1.2 2000/07/16 22:29:06 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2000/07/16 22:29:06 $
*
* ====================================================================
*
@@ -79,7 +79,7 @@
* the server if this option is selected.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/05/31 22:28:12 $
+ * @version $Revision: 1.2 $ $Date: 2000/07/16 22:29:06 $
*/
public final class OptionTag extends BodyTagSupport {
@@ -178,7 +178,7 @@
writer.println(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue evaluating this page
1.2 +10 -12 jakarta-struts/src/share/org/apache/struts/taglib/OptionsTag.java
Index: OptionsTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/OptionsTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- OptionsTag.java 2000/06/25 01:36:21 1.1
+++ OptionsTag.java 2000/07/16 22:29:06 1.2
@@ -58,7 +58,6 @@
package org.apache.struts.taglib;
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
@@ -203,13 +202,16 @@
}
catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
return EVAL_PAGE;
}
+ // -------------------------------------------------------- Private Methods
+
+
/**
* Return an iterator for the option labels or values, based on our
* configured properties.
@@ -229,24 +231,20 @@
Object bean = pageContext.findAttribute(beanName);
if (bean == null)
throw new JspException
- (messages.getMessage("optionsTag.noBean", beanName));
+ (messages.getMessage("getter.bean", beanName));
// Identify the collection itself
Object collection = bean;
if (property != null) {
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- collection = method.invoke(bean, new Object[0]);
+ collection = BeanUtils.getPropertyValue(bean, property);
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("baseFieldTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
}
@@ -261,7 +259,7 @@
return (((Map) collection).entrySet().iterator());
else
throw new JspException
- (messages.getMessage("optionsTag.noCollection",
+ (messages.getMessage("optionsTag.iterator",
collection.toString()));
}
1.2 +4 -5 jakarta-struts/src/share/org/apache/struts/taglib/ParameterTag.java
Index: ParameterTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ParameterTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ParameterTag.java 2000/05/31 22:28:12 1.1
+++ ParameterTag.java 2000/07/16 22:29:06 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ParameterTag.java,v 1.1 2000/05/31 22:28:12 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/05/31 22:28:12 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ParameterTag.java,v 1.2 2000/07/16 22:29:06 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2000/07/16 22:29:06 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
@@ -78,7 +77,7 @@
* Display the value of the specified query parameter as read-only HTML text.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/05/31 22:28:12 $
+ * @version $Revision: 1.2 $ $Date: 2000/07/16 22:29:06 $
*/
public class ParameterTag extends TagSupport {
@@ -149,7 +148,7 @@
writer.print(BeanUtils.filter(value));
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
1.4 +11 -17 jakarta-struts/src/share/org/apache/struts/taglib/PropertyTag.java
Index: PropertyTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/PropertyTag.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PropertyTag.java 2000/06/16 04:41:08 1.3
+++ PropertyTag.java 2000/07/16 22:29:06 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/PropertyTag.java,v 1.3 2000/06/16 04:41:08 craigmcc Exp $
- * $Revision: 1.3 $
- * $Date: 2000/06/16 04:41:08 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/PropertyTag.java,v 1.4 2000/07/16 22:29:06 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2000/07/16 22:29:06 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
@@ -77,7 +76,7 @@
* Display the value of the specified bean property as read-only HTML text.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.3 $ $Date: 2000/06/16 04:41:08 $
+ * @version $Revision: 1.4 $ $Date: 2000/07/16 22:29:06 $
*/
public class PropertyTag extends BaseInputTag {
@@ -101,24 +100,19 @@
Object bean = pageContext.findAttribute(Constants.BEAN_KEY);
if (bean == null)
throw new JspException
- (messages.getMessage("baseFieldTag.missing", property));
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
- Object value = null;
+ (messages.getMessage("getter.bean", Constants.BEAN_KEY));
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- value = method.invoke(bean, new Object[0]);
+ String value = BeanUtils.getScalarProperty(bean, property);
if (value == null)
value = "";
- results.append(BeanUtils.filter(value.toString()));
+ results.append(BeanUtils.filter(value));
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("baseFieldTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
}
@@ -128,7 +122,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
1.6 +12 -17 jakarta-struts/src/share/org/apache/struts/taglib/RadioTag.java
Index: RadioTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/RadioTag.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- RadioTag.java 2000/06/24 03:16:11 1.5
+++ RadioTag.java 2000/07/16 22:29:06 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/RadioTag.java,v 1.5 2000/06/24 03:16:11 craigmcc Exp $
- * $Revision: 1.5 $
- * $Date: 2000/06/24 03:16:11 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/RadioTag.java,v 1.6 2000/07/16 22:29:06 craigmcc Exp $
+ * $Revision: 1.6 $
+ * $Date: 2000/07/16 22:29:06 $
*
* ====================================================================
*
@@ -63,7 +63,6 @@
package org.apache.struts.taglib;
-import java.lang.reflect.Method;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
@@ -76,7 +75,7 @@
* Tag for input fields of type "radio".
*
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2000/06/24 03:16:11 $
+ * @version $Revision: 1.6 $ $Date: 2000/07/16 22:29:06 $
*/
public final class RadioTag extends BaseHandlerTag {
@@ -163,26 +162,22 @@
public int doStartTag() throws JspException {
// Acquire the current value of the appropriate field
- String current = null;
+ Object current = null;
Object bean = pageContext.findAttribute(Constants.BEAN_KEY);
if (bean == null)
throw new JspException
- (messages.getMessage("baseFieldTag.missing", property));
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
+ (messages.getMessage("getter.bean", Constants.BEAN_KEY));
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- current = method.invoke(bean, new Object[0]).toString();
+ current = BeanUtils.getScalarProperty(bean, property);
if (current == null)
current = "";
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("baseFieldTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
// Create an appropriate "input" element based on our parameters
@@ -215,7 +210,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
@@ -239,7 +234,7 @@
writer.println(bodyContent.getString().trim());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue evaluating this page
1.3 +5 -5 jakarta-struts/src/share/org/apache/struts/taglib/RedirectTag.java
Index: RedirectTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/RedirectTag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- RedirectTag.java 2000/06/30 00:46:41 1.2
+++ RedirectTag.java 2000/07/16 22:29:06 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/RedirectTag.java,v 1.2 2000/06/30 00:46:41 craigmcc Exp $
- * $Revision: 1.2 $
- * $Date: 2000/06/30 00:46:41 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/RedirectTag.java,v 1.3 2000/07/16 22:29:06 craigmcc Exp $
+ * $Revision: 1.3 $
+ * $Date: 2000/07/16 22:29:06 $
*
* ====================================================================
*
@@ -78,7 +78,7 @@
* the remainder of the current page.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.2 $ $Date: 2000/06/30 00:46:41 $
+ * @version $Revision: 1.3 $ $Date: 2000/07/16 22:29:06 $
*/
public class RedirectTag extends TagSupport {
@@ -156,7 +156,7 @@
response.sendRedirect(response.encodeRedirectURL(href));
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Skip the remainder of the current page
1.4 +5 -5 jakarta-struts/src/share/org/apache/struts/taglib/ResetTag.java
Index: ResetTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ResetTag.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ResetTag.java 2000/06/24 03:16:12 1.3
+++ ResetTag.java 2000/07/16 22:29:06 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ResetTag.java,v 1.3 2000/06/24 03:16:12 craigmcc Exp $
- * $Revision: 1.3 $
- * $Date: 2000/06/24 03:16:12 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ResetTag.java,v 1.4 2000/07/16 22:29:06 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2000/07/16 22:29:06 $
*
* ====================================================================
*
@@ -76,7 +76,7 @@
* Tag for input fields of type "reset".
*
* @author Craig R. McClanahan
- * @version $Revision: 1.3 $ $Date: 2000/06/24 03:16:12 $
+ * @version $Revision: 1.4 $ $Date: 2000/07/16 22:29:06 $
*/
public final class ResetTag extends BaseHandlerTag {
@@ -211,7 +211,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
return (EVAL_PAGE);
1.6 +11 -17 jakarta-struts/src/share/org/apache/struts/taglib/SelectTag.java
Index: SelectTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/SelectTag.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SelectTag.java 2000/06/24 03:16:12 1.5
+++ SelectTag.java 2000/07/16 22:29:06 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/SelectTag.java,v 1.5 2000/06/24 03:16:12 craigmcc Exp $
- * $Revision: 1.5 $
- * $Date: 2000/06/24 03:16:12 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/SelectTag.java,v 1.6 2000/07/16 22:29:06 craigmcc Exp $
+ * $Revision: 1.6 $
+ * $Date: 2000/07/16 22:29:06 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
@@ -79,7 +78,7 @@
* inside a form tag.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2000/06/24 03:16:12 $
+ * @version $Revision: 1.6 $ $Date: 2000/07/16 22:29:06 $
*/
public final class SelectTag extends BaseHandlerTag {
@@ -206,7 +205,7 @@
writer.println(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("formTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Store this tag itself as a page attribute
@@ -219,23 +218,18 @@
Object bean = pageContext.findAttribute(Constants.BEAN_KEY);
if (bean == null)
throw new JspException
- (messages.getMessage("baseFieldTag.missing", property));
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
- Object value = null;
+ (messages.getMessage("getter.bean", Constants.BEAN_KEY));
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- match = method.invoke(bean, new Object[0]).toString();
+ match = BeanUtils.getScalarProperty(bean, property);
if (match == null)
match = "";
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("baseFieldTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
}
@@ -268,7 +262,7 @@
writer.println(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("formTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
1.5 +5 -5 jakarta-struts/src/share/org/apache/struts/taglib/SubmitTag.java
Index: SubmitTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/SubmitTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SubmitTag.java 2000/06/24 03:16:12 1.4
+++ SubmitTag.java 2000/07/16 22:29:06 1.5
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/SubmitTag.java,v 1.4 2000/06/24 03:16:12 craigmcc Exp $
- * $Revision: 1.4 $
- * $Date: 2000/06/24 03:16:12 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/SubmitTag.java,v 1.5 2000/07/16 22:29:06 craigmcc Exp $
+ * $Revision: 1.5 $
+ * $Date: 2000/07/16 22:29:06 $
*
* ====================================================================
*
@@ -76,7 +76,7 @@
* Tag for input fields of type "submit".
*
* @author Craig R. McClanahan
- * @version $Revision: 1.4 $ $Date: 2000/06/24 03:16:12 $
+ * @version $Revision: 1.5 $ $Date: 2000/07/16 22:29:06 $
*/
public final class SubmitTag extends BaseHandlerTag {
@@ -211,7 +211,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
return (EVAL_PAGE);
1.10 +10 -16 jakarta-struts/src/share/org/apache/struts/taglib/TextareaTag.java
Index: TextareaTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/TextareaTag.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- TextareaTag.java 2000/06/30 16:50:28 1.9
+++ TextareaTag.java 2000/07/16 22:29:07 1.10
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/TextareaTag.java,v 1.9 2000/06/30 16:50:28 craigmcc Exp $
- * $Revision: 1.9 $
- * $Date: 2000/06/30 16:50:28 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/TextareaTag.java,v 1.10 2000/07/16 22:29:07 craigmcc Exp $
+ * $Revision: 1.10 $
+ * $Date: 2000/07/16 22:29:07 $
*
* ====================================================================
*
@@ -64,7 +64,6 @@
import java.io.IOException;
-import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
@@ -77,7 +76,7 @@
* Custom tag for input fields of type "textarea".
*
* @author Craig R. McClanahan
- * @version $Revision: 1.9 $ $Date: 2000/06/30 16:50:28 $
+ * @version $Revision: 1.10 $ $Date: 2000/07/16 22:29:07 $
*/
public class TextareaTag extends BaseInputTag {
@@ -138,24 +137,19 @@
Object bean = pageContext.findAttribute(Constants.BEAN_KEY);
if (bean == null)
throw new JspException
- (messages.getMessage("baseFieldTag.missing", property));
- String methodName = "get" + BeanUtils.capitalize(property);
- Class paramTypes[] = new Class[0];
- Method method = null;
- Object value = null;
+ (messages.getMessage("getter.bean", Constants.BEAN_KEY));
try {
- method = bean.getClass().getMethod(methodName, paramTypes);
- value = method.invoke(bean, new Object[0]);
+ String value = BeanUtils.getScalarProperty(bean, property);
if (value == null)
value = "";
results.append(BeanUtils.filter((String) value));
} catch (NoSuchMethodException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.method", methodName));
+ (messages.getMessage("getter.method", property));
} catch (Exception e) {
throw new JspException
- (messages.getMessage("baseFieldTag.result",
- methodName, e.toString()));
+ (messages.getMessage("getter.result",
+ property, e.toString()));
}
}
results.append("</textarea>");
@@ -166,7 +160,7 @@
writer.print(results.toString());
} catch (IOException e) {
throw new JspException
- (messages.getMessage("baseFieldTag.io", e.toString()));
+ (messages.getMessage("common.io", e.toString()));
}
// Continue processing this page
1.4 +92 -4 jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java
Index: BeanUtils.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BeanUtils.java 2000/07/15 23:20:55 1.3
+++ BeanUtils.java 2000/07/16 22:29:10 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java,v 1.3 2000/07/15 23:20:55 craigmcc Exp $
- * $Revision: 1.3 $
- * $Date: 2000/07/15 23:20:55 $
+ * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java,v 1.4 2000/07/16 22:29:10 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2000/07/16 22:29:10 $
*
* ====================================================================
*
@@ -81,7 +81,7 @@
*
* @author Craig R. McClanahan
* @author Ralph Schaer
- * @version $Revision: 1.3 $ $Date: 2000/07/15 23:20:55 $
+ * @version $Revision: 1.4 $ $Date: 2000/07/16 22:29:10 $
*/
public final class BeanUtils {
@@ -319,6 +319,37 @@
/**
+ * Return the value of the specified array property of the specified
+ * bean, as a String array.
+ *
+ * @param bean Bean whose property is to be extracted
+ * @param name Name of the property to be extracted
+ *
+ * @exception Exception if any problem occurs while acquiring or
+ * converting this property value.
+ */
+ public static String[] getArrayProperty(Object bean, String name)
+ throws Exception {
+
+ Object value = getPropertyValue(bean, name);
+ if (value == null) {
+ return (null);
+ } else if (value.getClass().isArray()) {
+ Object values[] = (Object[]) value;
+ String results[] = new String[values.length];
+ for (int i = 0; i < values.length; i++)
+ results[i] = values[i].toString();
+ return (results);
+ } else {
+ String results[] = new String[1];
+ results[0] = value.toString();
+ return (results);
+ }
+
+ }
+
+
+ /**
* Return the PropertyDescriptor for the specified property of the
* specified bean, if there is one; Otherwise, return <code>null</code>.
*
@@ -373,6 +404,63 @@
descriptors = new PropertyDescriptor[0];
descriptorsCache.put(beanClassName, descriptors);
return (descriptors);
+
+ }
+
+
+ /**
+ * Return the value of the specified property of the specified
+ * bean, with no type conversinos.
+ *
+ * @param bean Bean whose property is to be extracted
+ * @param name Name of the property to be extracted
+ *
+ * @exception Exception if any problem occurs while acquiring
+ * this property value.
+ */
+ public static Object getPropertyValue(Object bean, String name)
+ throws Exception {
+
+ // Retrieve the property getter method for the specified property
+ PropertyDescriptor descriptor =
+ getPropertyDescriptor(bean, name);
+ if (descriptor == null)
+ throw new NoSuchMethodException("Unknown property '" +
+ name + "'");
+ Method readMethod = descriptor.getReadMethod();
+ if (readMethod == null)
+ throw new NoSuchMethodException("Property '" + name +
+ "' has no getter method");
+
+ // Call the property getter and return the value
+ Object value = readMethod.invoke(bean, new Object[0]);
+ return (value);
+
+ }
+
+
+ /**
+ * Return the value of the specified scalar property of the specified
+ * bean, as a String.
+ *
+ * @param bean Bean whose property is to be extracted
+ * @param name Name of the property to be extracted
+ *
+ * @exception Exception if any problem occurs while acquiring or
+ * converting this property value.
+ */
+ public static String getScalarProperty(Object bean, String name)
+ throws Exception {
+
+ Object value = getPropertyValue(bean, name);
+ if (value == null) {
+ return (null);
+ } else if (value.getClass().isArray()) {
+ Object values[] = (Object[]) value;
+ return (values[0].toString());
+ } else {
+ return (value.toString());
+ }
}