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>