locale.language is just the language, so it will never match the Language plus the Country. If you need to test both you could do:
<s:if test="%{(locale.language == 'en') && (locale.country == 'US')}"> You might even be able to get away with: <s:if test = %{(locale.language + '_' + locale.country) == 'en_US'}"> But I haven't tested it to be sure. (*Chris*) On Tue, Sep 10, 2013 at 12:39 AM, Alireza Fattahi <afatt...@yahoo.com>wrote: > Thanks for your solution . > The > <s:if test="%{locale.language == 'en_US'}"> > did not work! I don't know why ! > > But I used your solution which seems much better tahn mine ! > > ~Regards, > ~~Alireza Fattahi > > > ________________________________ > From: Chris <christal...@yahoo.fr> > To: Struts Users Mailing List <user@struts.apache.org>; Alireza Fattahi < > afatt...@yahoo.com>; Chris <christal...@yahoo.fr> > Sent: Monday, 9 September 2013, 7:49 > Subject: Re: s:if and locale > > > Hello , > Could you please write how do you define > > The locale is = ${locale} //Here the correct locale is displayed! > I see in my browser ( even source code ) > > The locale is = //Here the correct locale is displayed! > > > ________________________________ > Please try this expresion and tell us if it works > <s:if test="%{locale.language == 'en_US'}"> > > You will have to test your "locale" it in every jsp ? > Couldn't you use for example, a global.properties file and struts.xml > <constant name="struts.custom.i18n.resources" value="global" /> > > in the file global.properties :cssfile=englshstyle.css > in the file global_es.properties :cssfile=spanishstyle.css > in yourjsp : <link href='<s:text name="cssfile" />' rel="stylesheet" > type="text/css" /> > It works with sample > http://struts.apache.org/development/2.x/docs/message-resource-files.html > but the links are with parameter like .... action?request_locale=en > and you will need many properties file > > > > ________________________________ > HI, > > I have used the strtuts I18n feature for managing the localization. The > site works fine and the messages are selected from correct resource bundels. > > I have this problem.... > > I want to change css base on the user locale. > So I use below code in jsp: > ************************** > The locale is = ${locale} //Here the correct locale is displayed! > <s:if test="%{locale == 'en_US'}"> //This condition is always false > <link href="site-en.css" rel="stylesheet" type="text/css" /> > </s:if> > <s:else> > <link href="site-other.css" rel="stylesheet" type="text/css" /> > </s:else> > ************************** > > No matter what the locale value is, always the else condition is triggered > !! > The jsp out puts > ************** > The locale is=en_US > <link href="site-other.css" rel="stylesheet" type="text/css" /> > ********** > > > When I see the Struts ValueStack with <s:debug/> the locale value is > correct and is what it has too. > > Is there any thing wrong with my test conditin please help! > > ~Regards, > ~~Alireza Fattahi >