struts2的页面语言切换
2017-11-12 17:22
330 查看
页面语言切换用到的是I18nInterceptor拦截器
jsp页面
<a href="testI18n.action?request_locale=en_US">English</a>
<a href="testI18n.action?request_locale=zh_CN">中文</a><br>
<a href="index.jsp">index page</a>
<br>
<s:text name="time">
<s:param value="date"/>
</s:text>
<br>
<s:text name="password"></s:text>
<s:form>
<s:textfield label="%{getText('name')}"/>
<s:textfield key="name"/>
<s:textfield key="password"/>
<s:submit key="submit"/>
</s:form>
对应的action
public class TestI18nAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String execute(){
this.date = new Date();
String name = getText("name");
System.out.println(name);
String time = getText("time", Arrays.asList(date));
System.out.println(time);
return Action.SUCCESS;
}
}
至于URL的请求参数为什么是request_locale,这是由拦截器的源码决定的
public class I18nInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 2496830135246700300L;
protected static final Logger LOG = LoggerFactory.getLogger(I18nInterceptor.class);
public static final String DEFAULT_SESSION_ATTRIBUTE = "WW_TRANS_I18N_LOCALE";
public static final String DEFAULT_PARAMETER = "request_locale";
public static final String DEFAULT_REQUESTONLY_PARAMETER = "request_only_locale";
protected String parameterName = DEFAULT_PARAMETER;
protected String requestOnlyParameterName = DEFAULT_REQUESTONLY_PARAMETER;
protected String attributeName = DEFAULT_SESSION_ATTRIBUTE;
所以只要每次请求都经过拦截器,且请求参数有指定语言的话,就能显示指定的语言格式(从国际资源文件中找)
jsp页面
<a href="testI18n.action?request_locale=en_US">English</a>
<a href="testI18n.action?request_locale=zh_CN">中文</a><br>
<a href="index.jsp">index page</a>
<br>
<s:text name="time">
<s:param value="date"/>
</s:text>
<br>
<s:text name="password"></s:text>
<s:form>
<s:textfield label="%{getText('name')}"/>
<s:textfield key="name"/>
<s:textfield key="password"/>
<s:submit key="submit"/>
</s:form>
对应的action
public class TestI18nAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String execute(){
this.date = new Date();
String name = getText("name");
System.out.println(name);
String time = getText("time", Arrays.asList(date));
System.out.println(time);
return Action.SUCCESS;
}
}
至于URL的请求参数为什么是request_locale,这是由拦截器的源码决定的
public class I18nInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 2496830135246700300L;
protected static final Logger LOG = LoggerFactory.getLogger(I18nInterceptor.class);
public static final String DEFAULT_SESSION_ATTRIBUTE = "WW_TRANS_I18N_LOCALE";
public static final String DEFAULT_PARAMETER = "request_locale";
public static final String DEFAULT_REQUESTONLY_PARAMETER = "request_only_locale";
protected String parameterName = DEFAULT_PARAMETER;
protected String requestOnlyParameterName = DEFAULT_REQUESTONLY_PARAMETER;
protected String attributeName = DEFAULT_SESSION_ATTRIBUTE;
所以只要每次请求都经过拦截器,且请求参数有指定语言的话,就能显示指定的语言格式(从国际资源文件中找)
相关文章推荐
- struts2通过ajax动态改变系统后台的语言来达到国际化页面切换的功能
- Struts2入门(10):国际化(i18n)和页面切换语言实例
- android切换语言后刷新页面
- Java Web的Struts2的多语种网站的多语言切换实例
- zen cart页面头部添加多语言切换
- Firefox切换页面默认显示语言
- strut1通过页面动态切换语言
- Firefox切换页面默认显示语言
- I18n国际化 页面语言切换 步骤
- Android 语言切换的方法,华为、小米手机语言切换语言后部分页面会自动变为简体中文
- struts2学习笔记之转换器实现语言切换
- HTML页面多语言切换
- struts2国际化多语言自动切换和手动切换
- Struts2中I18N原理及动态语言切换
- 浏览器不同语言切换不同页面
- 【java学习之旅】——Struts2的I18n实现登陆页面中英文切换
- struts2国际化语言切换
- struts2实现选择i18n语言选择切换
- 页面语言切换
- struts2实现国际化,多语言切换