oalexeev 02/02/21 09:48:14
Modified: src/share/org/apache/struts/taglib/bean DefineTag.java
DefineTei.java LocalStrings.properties
Log:
Modify bean:define tag - add ability to take tag's body as value for the new
scripting variable.
Revision Changes Path
1.13 +25 -11
jakarta-struts/src/share/org/apache/struts/taglib/bean/DefineTag.java
Index: DefineTag.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/DefineTag.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- DefineTag.java 23 Apr 2001 22:52:20 -0000 1.12
+++ DefineTag.java 21 Feb 2002 17:48:14 -0000 1.13
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/DefineTag.java,v 1.12
2001/04/23 22:52:20 craigmcc Exp $
- * $Revision: 1.12 $
- * $Date: 2001/04/23 22:52:20 $
+ * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/DefineTag.java,v 1.13
2002/02/21 17:48:14 oalexeev Exp $
+ * $Revision: 1.13 $
+ * $Date: 2002/02/21 17:48:14 $
*
* ====================================================================
*
@@ -67,7 +67,8 @@
import java.lang.reflect.InvocationTargetException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.TagSupport;
+import javax.servlet.jsp.tagext.BodyTagSupport;
+import org.apache.struts.util.MessageResources;
import org.apache.struts.util.RequestUtils;
@@ -76,11 +77,19 @@
* bean property.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.12 $ $Date: 2001/04/23 22:52:20 $
+ * @version $Revision: 1.13 $ $Date: 2002/02/21 17:48:14 $
*/
-public class DefineTag extends TagSupport {
+public class DefineTag extends BodyTagSupport {
+ // ---------------------------------------------------- Protected variables
+
+ /**
+ * The message resources for this package.
+ */
+ protected static MessageResources messages =
+ MessageResources.getMessageResources
+ ("org.apache.struts.taglib.bean.LocalStrings");
// ------------------------------------------------------------- Properties
@@ -186,17 +195,21 @@
// --------------------------------------------------------- Public Methods
-
/**
* Retrieve the required property and expose it as a scripting variable.
*
* @exception JspException if a JSP exception has occurred
*/
- public int doStartTag() throws JspException {
+ public int doEndTag() throws JspException {
+
+ if( this.value!=null && bodyContent!=null )
+ throw new JspException( messages.getMessage("define.value", name) );
// Retrieve the required property value
Object value = this.value;
- if (value == null)
+ if (value == null)
+ value = bodyContent.getString();
+ if (value == null)
value = RequestUtils.lookup(pageContext, name, property, scope);
// Expose this value as a scripting variable
@@ -208,10 +221,11 @@
else if ("application".equals(toScope))
inScope = PageContext.APPLICATION_SCOPE;
pageContext.setAttribute(id, value, inScope);
- return (SKIP_BODY);
- }
+ // Continue processing this page
+ return (EVAL_PAGE);
+ }
/**
* Release all allocated resources.
1.7 +13 -12
jakarta-struts/src/share/org/apache/struts/taglib/bean/DefineTei.java
Index: DefineTei.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/DefineTei.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DefineTei.java 22 Apr 2001 00:46:19 -0000 1.6
+++ DefineTei.java 21 Feb 2002 17:48:14 -0000 1.7
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/DefineTei.java,v 1.6
2001/04/22 00:46:19 craigmcc Exp $
- * $Revision: 1.6 $
- * $Date: 2001/04/22 00:46:19 $
+ * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/DefineTei.java,v 1.7
2002/02/21 17:48:14 oalexeev Exp $
+ * $Revision: 1.7 $
+ * $Date: 2002/02/21 17:48:14 $
*
* ====================================================================
*
@@ -73,7 +73,7 @@
* tag, identifying the scripting object(s) to be made visible.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.6 $ $Date: 2001/04/22 00:46:19 $
+ * @version $Revision: 1.7 $ $Date: 2002/02/21 17:48:14 $
*/
public class DefineTei extends TagExtraInfo {
@@ -85,20 +85,21 @@
public VariableInfo[] getVariableInfo(TagData data) {
String type = data.getAttributeString("type");
+ String name = data.getAttributeString("name");
Object value = data.getAttribute("value");
if (type == null) {
- if (value != null)
+ if ( (value!=null) || ( (value==null) && (name==null) ) )
type = "java.lang.String";
- else
+ else
type = "java.lang.Object";
}
- return new VariableInfo[] {
- new VariableInfo(data.getAttributeString("id"),
- type,
- true,
- VariableInfo.AT_BEGIN)
- };
+ return new VariableInfo[] {
+ new VariableInfo(data.getAttributeString("id"),
+ type,
+ true,
+ VariableInfo.AT_END )
+ };
}
1.15 +2 -1
jakarta-struts/src/share/org/apache/struts/taglib/bean/LocalStrings.properties
Index: LocalStrings.properties
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/LocalStrings.properties,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- LocalStrings.properties 21 Nov 2001 18:47:28 -0000 1.14
+++ LocalStrings.properties 21 Feb 2002 17:48:14 -0000 1.15
@@ -16,4 +16,5 @@
size.collection=No valid collection specified for size tag
struts.missing=No Struts internal object named {0} is available
struts.selector=You must specify exactly one of formBean, forward, or mapping
-write.format=Wrong format string: '{0}'
\ No newline at end of file
+write.format=Wrong format string: '{0}'
+define.value=Define tag can contain value attribute or body - both can not be
processed.
\ No newline at end of file
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>