dgraham     2003/07/10 21:22:15

  Modified:    doc/userGuide struts-html.xml
               src/share/org/apache/struts/taglib/html HtmlTag.java
  Log:
  Added lang attribute and deprecated locale attribute for PR# 18000.
  
  Revision  Changes    Path
  1.56      +17 -0     jakarta-struts/doc/userGuide/struts-html.xml
  
  Index: struts-html.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/doc/userGuide/struts-html.xml,v
  retrieving revision 1.55
  retrieving revision 1.56
  diff -u -r1.55 -r1.56
  --- struts-html.xml   8 Jul 2003 00:05:10 -0000       1.55
  +++ struts-html.xml   11 Jul 2003 04:22:15 -0000      1.56
  @@ -2291,6 +2291,19 @@
             object, if there is one.</p>
             </info>
   
  +       <attribute>
  +            <name>lang</name>
  +            <required>false</required>
  +            <rtexprvalue>true</rtexprvalue>
  +            <info>
  +                 Renders a lang attribute with the locale stored in the user's 
session.  If not 
  +                 found in the session, the language from the 
<code>Accept-Language</code>
  +                 HTTP header is used.  If still not found, the default language for 
the server 
  +                 is used.
  +            </info>
  +                     <since>Struts 1.2</since>
  +        </attribute>
  +
             <attribute>
               <name>locale</name>
               <required>false</required>
  @@ -2302,6 +2315,10 @@
                 if one does not already exist.  The lang attribute is rendered with 
the
                 appropriate language code.</p>
               </info>
  +            <deprecated>
  +                Creating a session is undesirable for apps that don't support them. 
 Use the lang
  +                attribute to acheive the same functionality without creating a 
session.
  +            </deprecated>
             </attribute>
   
             <attribute>
  
  
  
  1.14      +54 -19    
jakarta-struts/src/share/org/apache/struts/taglib/html/HtmlTag.java
  
  Index: HtmlTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/HtmlTag.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- HtmlTag.java      10 Jul 2003 04:10:05 -0000      1.13
  +++ HtmlTag.java      11 Jul 2003 04:22:15 -0000      1.14
  @@ -97,34 +97,58 @@
   
       /**
        * Should we set the current Locale for this user if needed?
  +     * @deprecated This will be removed after Struts 1.2.
        */
       protected boolean locale = false;
   
  +    /**
  +     * @deprecated This will be removed after Struts 1.2.
  +     */
       public boolean getLocale() {
           return (locale);
       }
   
  +    /**
  +     * @deprecated This will be removed after Struts 1.2.
  +     */
       public void setLocale(boolean locale) {
           this.locale = locale;
       }
   
  -
       /**
        * Are we rendering an xhtml page?
        */
       protected boolean xhtml = false;
  +    
  +    /**
  +     * Are we rendering a lang attribute?
  +     * @since Struts 1.2
  +     */
  +    protected boolean lang = false;
   
       public boolean getXhtml() {
  -        return (xhtml);
  +        return this.xhtml;
       }
   
       public void setXhtml(boolean xhtml) {
           this.xhtml = xhtml;
       }
  +    
  +    /**
  +     * Returns true if the tag should render a lang attribute.
  +     * @since Struts 1.2
  +     */
  +    public boolean getLang() {
  +        return this.lang;
  +    }
   
  -
  -    // --------------------------------------------------------- Public Methods
  -
  +    /**
  +     * Sets whether the tag should render a lang attribute.
  +     * @since Struts 1.2
  +     */
  +    public void setLang(boolean lang) {
  +        this.lang = lang;
  +    }
   
       /**
        * Process the start of this tag.
  @@ -146,29 +170,38 @@
           StringBuffer sb = new StringBuffer("<html");
   
           // Use the current Locale to set our language preferences
  -        Locale currentLocale = this.getCurrentLocale();
  -        String lang = currentLocale.getLanguage();
  +        String language = null;
  +        if (this.locale) {
  +            // provided for 1.1 backward compatibility, remove after 1.2
  +            language = this.getCurrentLocale().getLanguage();
  +        } else {
  +            language =
  +                RequestUtils
  +                    .retrieveUserLocale(pageContext, Globals.LOCALE_KEY)
  +                    .getLanguage();
  +        }
   
           // Does the locale have a language?
  -        boolean validLanguage = ((lang != null) && (lang.length() > 0));
  +        boolean validLanguage = ((language != null) && (language.length() > 0));
   
           if (this.xhtml) {
               this.pageContext.setAttribute(
                   Globals.XHTML_KEY,
                   "true",
                   PageContext.PAGE_SCOPE);
  +                
               sb.append(" xmlns=\"http://www.w3.org/1999/xhtml\"";);
           }
   
  -        if ((this.locale || this.xhtml) && validLanguage) {
  +        if ((this.lang || this.locale || this.xhtml) && validLanguage) {
               sb.append(" lang=\"");
  -            sb.append(lang);
  +            sb.append(language);
               sb.append("\"");
           }
   
           if (this.xhtml && validLanguage) {
               sb.append(" xml:lang=\"");
  -            sb.append(lang);
  +            sb.append(language);
               sb.append("\"");
           }
   
  @@ -196,10 +229,9 @@
        * Release any acquired resources.
        */
       public void release() {
  -
  -        locale = false;
  -        xhtml = false;
  -
  +        this.locale = false;
  +        this.xhtml = false;
  +        this.lang=false;
       }
   
   
  @@ -212,6 +244,7 @@
        * client's Accept-Language header or the server's default locale and store it 
in the 
        * session.  This will always return a Locale and never null.
        * @since Struts 1.1
  +     * @deprecated This will be removed after Struts 1.2.
        */
       protected Locale getCurrentLocale() {
   
  @@ -225,5 +258,7 @@
   
           return userLocale;
       }
  +
  +
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to