You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by lu...@apache.org on 2001/12/04 02:17:40 UTC

cvs commit: jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/rt/fmt MessageTag.java

luehe       01/12/03 17:17:40

  Modified:    standard/conf fmt-rt.tld fmt.tld
               standard/examples/src/org/apache/taglibs/jsptl/examples/i18n
                        Resources_de.java
               standard/examples/src/org/apache/taglibs/jsptl/examples/startup
                        Init.java
               standard/examples/web/format ParametricReplacement.jsp
               standard/src/org/apache/taglibs/standard/tag/common/fmt
                        MessageSupport.java
               standard/src/org/apache/taglibs/standard/tag/el/fmt
                        MessageTag.java
               standard/src/org/apache/taglibs/standard/tag/rt/fmt
                        MessageTag.java
  Log:
  Added 'messageArgs' attribute to <message> action
  
  Revision  Changes    Path
  1.5       +5 -0      jakarta-taglibs/standard/conf/fmt-rt.tld
  
  Index: fmt-rt.tld
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/conf/fmt-rt.tld,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- fmt-rt.tld	2001/12/03 22:43:50	1.4
  +++ fmt-rt.tld	2001/12/04 01:17:39	1.5
  @@ -139,6 +139,11 @@
           <rtexprvalue>true</rtexprvalue>
       </attribute>
       <attribute>
  +        <name>messageArgs</name>
  +        <required>false</required>
  +        <rtexprvalue>true</rtexprvalue>
  +    </attribute>
  +    <attribute>
           <name>var</name>
           <required>false</required>
           <rtexprvalue>false</rtexprvalue>
  
  
  
  1.5       +5 -0      jakarta-taglibs/standard/conf/fmt.tld
  
  Index: fmt.tld
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/conf/fmt.tld,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- fmt.tld	2001/12/03 22:43:50	1.4
  +++ fmt.tld	2001/12/04 01:17:39	1.5
  @@ -178,6 +178,11 @@
           <rtexprvalue>false</rtexprvalue>
       </attribute>
       <attribute>
  +        <name>messageArgs</name>
  +        <required>false</required>
  +        <rtexprvalue>false</rtexprvalue>
  +    </attribute>
  +    <attribute>
           <name>var</name>
           <required>false</required>
           <rtexprvalue>false</rtexprvalue>
  
  
  
  1.2       +1 -0      jakarta-taglibs/standard/examples/src/org/apache/taglibs/jsptl/examples/i18n/Resources_de.java
  
  Index: Resources_de.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/examples/src/org/apache/taglibs/jsptl/examples/i18n/Resources_de.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Resources_de.java	2001/11/21 07:34:27	1.1
  +++ Resources_de.java	2001/12/04 01:17:40	1.2
  @@ -9,6 +9,7 @@
   	contents = new Object[][] {
   	    { "greetingMorning", "Guten Morgen!" },
   	    { "greetingEvening", "Guten Abend!" },
  +	    { "serverInfo", "Name und Version des Servlet Containers: {0}" },
   	    { "currentTime", "Heutiges Datum und Uhrzeit: {0}" },
   	    { "com.acme.labels.cancel", "Abbrechen" },
   	    { "java.lang.ArithmeticException", "/ durch 0" }
  
  
  
  1.3       +8 -1      jakarta-taglibs/standard/examples/src/org/apache/taglibs/jsptl/examples/startup/Init.java
  
  Index: Init.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/examples/src/org/apache/taglibs/jsptl/examples/startup/Init.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Init.java	2001/11/21 20:55:22	1.2
  +++ Init.java	2001/12/04 01:17:40	1.3
  @@ -65,7 +65,7 @@
    * used in the "examples" webapp.
    *
    * @author Pierre Delisle
  - * @version $Revision: 1.2 $ $Date: 2001/11/21 20:55:22 $
  + * @version $Revision: 1.3 $ $Date: 2001/12/04 01:17:40 $
    */
   public class Init implements ServletContextListener {
       
  @@ -146,6 +146,13 @@
   	// don't use 'enum' for attribute name because it is a 
   	// reserved word in EcmaScript.
           sce.getServletContext().setAttribute("enumeration", enum);
  +
  +	/**
  +	 * Message arguments for parametric replacement
  +	 */
  +	Object[] messageArgs =
  +	    new Object[] { sce.getServletContext().getServerInfo() };
  +	sce.getServletContext().setAttribute("messageArgs", messageArgs);
       }
       
       //*********************************************************************
  
  
  
  1.2       +3 -0      jakarta-taglibs/standard/examples/web/format/ParametricReplacement.jsp
  
  Index: ParametricReplacement.jsp
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/examples/web/format/ParametricReplacement.jsp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ParametricReplacement.jsp	2001/11/21 07:34:35	1.1
  +++ ParametricReplacement.jsp	2001/12/04 01:17:40	1.2
  @@ -28,6 +28,9 @@
       <fmt:formatDate type="both"/>
      </fmt:messageArg>
     </fmt:message>
  +
  + <li>
  +  <fmt:message key="serverInfo" bundle="$deBundle" messageArgs="$messageArgs"/>
   </ul>
   
   </body>
  
  
  
  1.2       +10 -5     jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/fmt/MessageSupport.java
  
  Index: MessageSupport.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/fmt/MessageSupport.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MessageSupport.java	2001/11/21 07:39:01	1.1
  +++ MessageSupport.java	2001/12/04 01:17:40	1.2
  @@ -82,8 +82,9 @@
       //*********************************************************************
       // Protected state
   
  -    protected String key;                              // 'key' attribute
  -    protected ResourceBundle bundle;                   // 'bundle' attribute
  +    protected String key;                         // 'key' attribute
  +    protected ResourceBundle bundle;              // 'bundle' attribute
  +    protected Object[] messageArgs;               // 'messageArgs' attribute
   
   
       //*********************************************************************
  @@ -106,12 +107,13 @@
       private void init() {
   	key = var = null;
   	bundle = null;
  +	messageArgs = null;
   	scope = PageContext.PAGE_SCOPE;
   	arguments.clear();
       }
   
   
  -   //*********************************************************************
  +    //*********************************************************************
       // Tag attributes known at translation time
   
       public void setVar(String var) {
  @@ -165,11 +167,14 @@
   		if (prefix != null)
   		    key = prefix + key;
   		message = bundle.getString(key);
  -		if (!arguments.isEmpty()) {
  +		// Perform parametric replacement if required
  +		if (!arguments.isEmpty())
  +		    messageArgs = arguments.toArray();
  +		if (messageArgs != null) {
   		    MessageFormat formatter = new MessageFormat("");
   		    formatter.setLocale(bundle.getLocale());
   		    formatter.applyPattern(message);
  -		    message = formatter.format(arguments.toArray());
  +		    message = formatter.format(messageArgs);
   		}
   	    } catch (MissingResourceException mre) {
   		ServletContext sc = pageContext.getServletContext();
  
  
  
  1.2       +18 -2     jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/el/fmt/MessageTag.java
  
  Index: MessageTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/el/fmt/MessageTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MessageTag.java	2001/11/21 07:39:05	1.1
  +++ MessageTag.java	2001/12/04 01:17:40	1.2
  @@ -71,10 +71,17 @@
   public class MessageTag extends MessageSupport {
   
       //*********************************************************************
  -    // 'Private' state (implementation details)
  +    // Private constants
   
  +    private static final Class OBJECT_ARRAY_CLASS = new Object[0].getClass();
  +
  +
  +    //*********************************************************************
  +    // Private state (implementation details)
  +
       private String key_;                         // stores EL-based property
       private String bundle_;		         // stores EL-based property
  +    private String messageArgs_;	         // stores EL-based property
   
   
       //*********************************************************************
  @@ -124,14 +131,19 @@
           this.bundle_ = bundle_;
       }
   
  +    // for EL-based attribute
  +    public void setMessageArgs(String messageArgs_) {
  +        this.messageArgs_ = messageArgs_;
  +    }
   
  +
       //*********************************************************************
       // Private (utility) methods
   
       // (re)initializes state (during release() or construction)
       private void init() {
           // null implies "no expression"
  -	key_ = bundle_ = null;
  +	key_ = bundle_ = messageArgs_ = null;
       }
   
       // Evaluates expressions as necessary
  @@ -148,6 +160,10 @@
   	    "message", "key", key_, String.class, this, pageContext);
   	bundle = (ResourceBundle) ExpressionUtil.evalNotNull(
   	    "message", "bundle", bundle_, ResourceBundle.class, this,
  +	    pageContext);
  +
  +	messageArgs = (Object[]) ExpressionUtil.evalNotNull(
  +	    "message", "messageArgs", messageArgs_, OBJECT_ARRAY_CLASS, this,
   	    pageContext);
       }
   }
  
  
  
  1.2       +5 -0      jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/rt/fmt/MessageTag.java
  
  Index: MessageTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/rt/fmt/MessageTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MessageTag.java	2001/11/21 07:38:50	1.1
  +++ MessageTag.java	2001/12/04 01:17:40	1.2
  @@ -81,4 +81,9 @@
       public void setBundle(ResourceBundle bundle) throws JspTagException {
           this.bundle = bundle;
       }
  +
  +    // for tag attribute
  +    public void setMessageArgs(Object[] messageArgs) throws JspTagException {
  +        this.messageArgs = messageArgs;
  +    }
   }
  
  
  

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