dmkarr 2002/10/25 22:24:44 Modified: contrib/struts-el/src/share/org/apache/strutsel/taglib/html ELJavascriptValidatorTag.java contrib/struts-el/doc/userGuide struts-html-el.xml Added: contrib/struts-el/src/share/org/apache/strutsel/taglib/html ELJavascriptValidatorTagBeanInfo.java Log: Bug 13985; Adding htmlComment attribute to html-el:javascript tag, also made page attribute check for null string Revision Changes Path 1.4 +46 -9 jakarta-struts/contrib/struts-el/src/share/org/apache/strutsel/taglib/html/ELJavascriptValidatorTag.java Index: ELJavascriptValidatorTag.java =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/struts-el/src/share/org/apache/strutsel/taglib/html/ELJavascriptValidatorTag.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ELJavascriptValidatorTag.java 1 Oct 2002 04:25:50 -0000 1.3 +++ ELJavascriptValidatorTag.java 26 Oct 2002 05:24:44 -0000 1.4 @@ -62,7 +62,7 @@ import org.apache.struts.taglib.html.JavascriptValidatorTag; import javax.servlet.jsp.JspException; -import org.apache.taglibs.standard.tag.el.core.ExpressionUtil; +import org.apache.strutsel.taglib.utils.EvalHelper; import org.apache.taglibs.standard.tag.common.core.NullAttributeException; /** @@ -82,6 +82,33 @@ public class ELJavascriptValidatorTag extends JavascriptValidatorTag { /** + * String value of the "page" attribute. + */ + private String pageExpr; + + /** + * Returns the string value of the "page" attribute. + */ + public String getPageExpr() { return (pageExpr); } + + /** + * Sets the string value of the "page" attribute. This attribute is mapped + * to this method by the <code>ELJavascriptValidatorTagBeanInfo</code> + * class. + */ + public void setPageExpr(String pageExpr) + { this.pageExpr = pageExpr; } + + /** + * Resets attribute values for tag reuse. + */ + public void release() + { + super.release(); + setPageExpr(null); + } + + /** * Process the start tag. * * @exception JspException if a JSP exception has occurred @@ -93,7 +120,8 @@ /** * Evaluates and returns a single attribute value, given the attribute - * name, attribute value, and attribute type. It uses + * name, attribute value, and attribute type. It uses the + * <code>EvalHelper</code> class to interface to * <code>ExpressionUtil.evalNotNull</code> to do the actual evaluation, and * it passes to this the name of the current tag, the <code>this</code> * pointer, and the current pageContext. @@ -101,6 +129,8 @@ * @param attrName attribute name being evaluated * @param attrValue String value of attribute to be evaluated using EL * @param attrType Required resulting type of attribute value + * @exception NullAttributeException if either the <code>attrValue</code> + * was null, or the resulting evaluated value was null. * @return Resulting attribute value */ private Object evalAttr(String attrName, @@ -108,8 +138,8 @@ Class attrType) throws JspException, NullAttributeException { - return (ExpressionUtil.evalNotNull("javascript", attrName, attrValue, - attrType, this, pageContext)); + return (EvalHelper.eval("javascript", attrName, attrValue, attrType, + this, pageContext)); } /** @@ -143,7 +173,7 @@ } try { - setPage(((Integer) evalAttr("page", getPage() + "", Integer.class)). + setPage(((Integer) evalAttr("page", getPageExpr(), Integer.class)). intValue()); } catch (NullAttributeException ex) { setPage(0); @@ -161,6 +191,13 @@ String.class)); } catch (NullAttributeException ex) { setStaticJavascript(null); + } + + try { + setHtmlComment((String) evalAttr("htmlComment", getHtmlComment(), + String.class)); + } catch (NullAttributeException ex) { + setHtmlComment(null); } } } 1.1 jakarta-struts/contrib/struts-el/src/share/org/apache/strutsel/taglib/html/ELJavascriptValidatorTagBeanInfo.java Index: ELJavascriptValidatorTagBeanInfo.java =================================================================== /* * $Header: /home/cvs/jakarta-struts/contrib/struts-el/src/share/org/apache/strutsel/taglib/html/ELJavascriptValidatorTagBeanInfo.java,v 1.1 2002/10/26 05:24:44 dmkarr Exp $ * $Revision: 1.1 $ * $Date: 2002/10/26 05:24:44 $ * ==================================================================== * * The Apache Software License, Version 1.1 * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowledgement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Struts", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * */ package org.apache.strutsel.taglib.html; import java.beans.PropertyDescriptor; import java.beans.IntrospectionException; import java.beans.SimpleBeanInfo; /** * This is the <code>BeanInfo</code> descriptor for the * <code>org.apache.strutsel.taglib.html.ELJavascriptValidatorTag</code> class. * It is needed to override the default mapping of custom tag attribute names * to class attribute names. *<p> * This is necessary because the base class, * <code>org.apache.struts.taglib.html.JavascriptValidatorTag</code> defines * some attributes whose type is not <code>java.lang.String</code>, so the * subclass needs to define setter methods of a different name, which this * class maps to. *<p> * Unfortunately, if a <code>BeanInfo</code> class needs to be provided to * change the mapping of one attribute, it has to specify the mappings of ALL * attributes, even if all the others use the expected mappings of "name" to * "method". */ public class ELJavascriptValidatorTagBeanInfo extends SimpleBeanInfo { public PropertyDescriptor[] getPropertyDescriptors() { PropertyDescriptor[] result = new PropertyDescriptor[7]; try { result[0] = new PropertyDescriptor("dynamicJavascript", ELJavascriptValidatorTag.class, null, "setDynamicJavascript"); result[1] = new PropertyDescriptor("formName", ELJavascriptValidatorTag.class, null, "setFormName"); result[2] = new PropertyDescriptor("method", ELJavascriptValidatorTag.class, null, "setMethod"); result[3] = new PropertyDescriptor("page", ELJavascriptValidatorTag.class, null, "setPageExpr"); result[4] = new PropertyDescriptor("src", ELJavascriptValidatorTag.class, null, "setSrc"); result[5] = new PropertyDescriptor("staticJavascript", ELJavascriptValidatorTag.class, null, "setStaticJavascript"); result[6] = new PropertyDescriptor("htmlComment", ELJavascriptValidatorTag.class, null, "setHtmlComment"); } catch (IntrospectionException ex) { ex.printStackTrace(); } return (result); } } 1.5 +12 -0 jakarta-struts/contrib/struts-el/doc/userGuide/struts-html-el.xml Index: struts-html-el.xml =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/struts-el/doc/userGuide/struts-html-el.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- struts-html-el.xml 14 Oct 2002 03:16:39 -0000 1.4 +++ struts-html-el.xml 26 Oct 2002 05:24:44 -0000 1.5 @@ -2975,6 +2975,18 @@ </p> </info> </attribute> + <attribute> + <name>htmlComment</name> + <required>false</required> + <rtexprvalue>false</rtexprvalue> + <info> + <p> + Wheather or not to enclose the javascript + with html comments. + Defaults to <code>true</code>. + </p> + </info> + </attribute> </tag>
-- To unsubscribe, e-mail: <mailto:struts-dev-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:struts-dev-help@;jakarta.apache.org>