com.opensymphony.xwork2.interceptor
Class I18nInterceptor

java.lang.Object
  extended by com.opensymphony.xwork2.interceptor.AbstractInterceptor
      extended by com.opensymphony.xwork2.interceptor.I18nInterceptor
All Implemented Interfaces:
Interceptor, Serializable

public class I18nInterceptor
extends AbstractInterceptor

An interceptor that handles setting the locale specified in a session as the locale for the current action request. In addition, this interceptor will look for a specific HTTP request parameter and set the locale to whatever value is provided. This means that this interceptor can be used to allow for your application to dynamically change the locale for the user's session or, alternatively, only for the current request (since XWork 2.1.3). This is very useful for applications that require multi-lingual support and want the user to be able to set his or her language preference at any point. The locale parameter is removed during the execution of this interceptor, ensuring that properties aren't set on an action (such as request_locale) that have no typical corresponding setter in your action.

For example, using the default parameter name, a request to foo.action?request_locale=en_US, then the locale for US English is saved in the user's session and will be used for all future requests.

Interceptor parameters:

Extending the interceptor:

There are no known extensions points for this interceptor.

Example code:

 
 <action name="someAction" class="com.examples.SomeAction">
     <interceptor-ref name="i18n"/>
     <interceptor-ref name="basicStack"/>
     <result name="success">good_result.ftl</result>
 </action>
 
 

Author:
Aleksei Gopachenko
See Also:
Serialized Form

Field Summary
protected  String attributeName
           
static String DEFAULT_PARAMETER
           
static String DEFAULT_REQUESTONLY_PARAMETER
           
static String DEFAULT_SESSION_ATTRIBUTE
           
protected static Logger LOG
           
protected  String parameterName
           
protected  String requestOnlyParameterName
           
 
Constructor Summary
I18nInterceptor()
           
 
Method Summary
private  Object findLocaleParameter(Map<String,Object> params, String parameterName)
           
 String intercept(ActionInvocation invocation)
          Override to handle interception
protected  void saveLocale(ActionInvocation invocation, Locale locale)
          Save the given locale to the ActionInvocation.
 void setAttributeName(String attributeName)
           
 void setParameterName(String parameterName)
           
 void setRequestOnlyParameterName(String requestOnlyParameterName)
           
 
Methods inherited from class com.opensymphony.xwork2.interceptor.AbstractInterceptor
destroy, init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

protected static final Logger LOG

DEFAULT_SESSION_ATTRIBUTE

public static final String DEFAULT_SESSION_ATTRIBUTE
See Also:
Constant Field Values

DEFAULT_PARAMETER

public static final String DEFAULT_PARAMETER
See Also:
Constant Field Values

DEFAULT_REQUESTONLY_PARAMETER

public static final String DEFAULT_REQUESTONLY_PARAMETER
See Also:
Constant Field Values

parameterName

protected String parameterName

requestOnlyParameterName

protected String requestOnlyParameterName

attributeName

protected String attributeName
Constructor Detail

I18nInterceptor

public I18nInterceptor()
Method Detail

setParameterName

public void setParameterName(String parameterName)

setRequestOnlyParameterName

public void setRequestOnlyParameterName(String requestOnlyParameterName)

setAttributeName

public void setAttributeName(String attributeName)

intercept

public String intercept(ActionInvocation invocation)
                 throws Exception
Description copied from class: AbstractInterceptor
Override to handle interception

Specified by:
intercept in interface Interceptor
Specified by:
intercept in class AbstractInterceptor
Parameters:
invocation - the action invocation
Returns:
the return code, either returned from ActionInvocation.invoke(), or from the interceptor itself.
Throws:
Exception - any system-level error, as defined in Action.execute().

findLocaleParameter

private Object findLocaleParameter(Map<String,Object> params,
                                   String parameterName)

saveLocale

protected void saveLocale(ActionInvocation invocation,
                          Locale locale)
Save the given locale to the ActionInvocation.

Parameters:
invocation - The ActionInvocation.
locale - The locale to save.


Copyright © 2000-2009 Apache Software Foundation. All Rights Reserved.