You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by oa...@apache.org on 2002/01/17 19:20:16 UTC

cvs commit: jakarta-struts/src/share/org/apache/struts/taglib/bean WriteTag.java

oalexeev    02/01/17 10:20:16

  Modified:    src/share/org/apache/struts/taglib/bean WriteTag.java
  Log:
  Patch for bug -
  [Bug 5865] New:  -     WriteTag tests for null format string but PropertyMessageResources always returns String.
  
  Revision  Changes    Path
  1.17      +32 -20    jakarta-struts/src/share/org/apache/struts/taglib/bean/WriteTag.java
  
  Index: WriteTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/WriteTag.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- WriteTag.java	17 Dec 2001 11:08:10 -0000	1.16
  +++ WriteTag.java	17 Jan 2002 18:20:16 -0000	1.17
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/WriteTag.java,v 1.16 2001/12/17 11:08:10 oalexeev Exp $
  - * $Revision: 1.16 $
  - * $Date: 2001/12/17 11:08:10 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/bean/WriteTag.java,v 1.17 2002/01/17 18:20:16 oalexeev Exp $
  + * $Revision: 1.17 $
  + * $Date: 2002/01/17 18:20:16 $
    *
    * ====================================================================
    *
  @@ -89,7 +89,7 @@
    * output stream, optionally filtering characters that are sensitive in HTML.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.16 $ $Date: 2001/12/17 11:08:10 $
  + * @version $Revision: 1.17 $ $Date: 2002/01/17 18:20:16 $
    */
   
   public class WriteTag extends TagSupport {
  @@ -307,6 +307,24 @@
       }
   
       /**
  +     * Retrieve format string from message bundle and return null if
  +     * message not found or message string.
  +     * 
  +     * @param formatKey value to use as key to search message in bundle
  +     * @exception JspException if a JSP exception has occurred
  +     */
  +    protected String retrieveFormatString( String formatKey ) throws JspException {
  +        String result = RequestUtils.message( pageContext, this.bundle, 
  +                                this.localeKey, formatKey );
  +        if( ( result!=null ) &&
  +              !( result.startsWith( "???" ) &&
  +                 result.endsWith( "???" ) ) )
  +                return result;
  +        else
  +                return null;
  +    }
  +
  +    /**
        * Format value according to specified format string (as tag attribute or
        * as string from message resources) or to current user locale.
        * 
  @@ -325,10 +343,10 @@
           } else {
   
               // Try to retrieve format string from resources by the key from formatKey.
  -            if( formatKey!=null ) {
  -                    formatStr = RequestUtils.message( pageContext, this.bundle,
  -                                                this.localeKey, this.formatKey );
  -                    formatStrFromResources = true;
  +            if( ( formatStr==null ) && ( formatKey!=null ) ) {
  +                    formatStr = retrieveFormatString( this.formatKey );
  +                    if( formatStr!=null )
  +                            formatStrFromResources = true;
               }
   
               // Prepare format object for numeric values.
  @@ -340,13 +358,11 @@
                               ( value instanceof Integer ) ||
                               ( value instanceof Long )    ||
                               ( value instanceof BigInteger ) )
  -                                formatStr = RequestUtils.message(pageContext, this.bundle,
  -                                              this.localeKey, INT_FORMAT_KEY );
  +                                formatStr = retrieveFormatString( INT_FORMAT_KEY );
                           else if( ( value instanceof Float ) ||
                                    ( value instanceof Double ) ||
                                    ( value instanceof BigDecimal ) )
  -                                formatStr = RequestUtils.message(pageContext, this.bundle,
  -                                              this.localeKey, FLOAT_FORMAT_KEY );
  +                                formatStr = retrieveFormatString( FLOAT_FORMAT_KEY );
                           if( formatStr!=null ) 
                                   formatStrFromResources = true;
                   }
  @@ -370,17 +386,13 @@
                   if( formatStr==null ) {
   
                           if (  value instanceof java.sql.Timestamp ) {
  -                                formatStr = RequestUtils.message(pageContext, this.bundle,
  -                                              this.localeKey, SQL_TIMESTAMP_FORMAT_KEY );
  +                                formatStr = retrieveFormatString( SQL_TIMESTAMP_FORMAT_KEY );
                           } else if (  value instanceof java.sql.Date ) {
  -                                formatStr = RequestUtils.message(pageContext, this.bundle,
  -                                              this.localeKey, SQL_DATE_FORMAT_KEY );
  +                                formatStr = retrieveFormatString( SQL_DATE_FORMAT_KEY );
                           } else if (  value instanceof java.sql.Time ) {
  -                                formatStr = RequestUtils.message(pageContext, this.bundle,
  -                                              this.localeKey, SQL_TIME_FORMAT_KEY );
  +                                formatStr = retrieveFormatString( SQL_TIME_FORMAT_KEY );
                           } else if (  value instanceof java.util.Date ) {
  -                                formatStr = RequestUtils.message(pageContext, this.bundle,
  -                                              this.localeKey, DATE_FORMAT_KEY );
  +                                formatStr = retrieveFormatString( DATE_FORMAT_KEY );
                           }
   
                           if( formatStr!=null ) 
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>