猿教程 Logo

Struts2 本地化/国际化(i18n)

i18n拦截器为您的应用程序提供多语言支持。

它处理操作的设置区域设置。 如果用户想要设置他/她的区域设置并根据提供的语言环境获取数据,则可以使用它。

默认情况下在defaultStack中找到,因此您不必明确声明。

i18n拦截器的参数

i18n拦截器定义了2个参数。 两者都是可选的。

参数描述
parameterName它指定HTTP请求参数的名称。 它被设置为request_locale bydefault。
attributeName指定存储区域设置的会话密钥的名称。 它是WW_TRANS_I18N_LOCALE bydefault。

i18n拦截器的例子

在这个例子中,我们正在创建以下页面:

  1. Login.java

  2. Login_en.properties和Login_hi.properties

  3. struts.xml

  4. index.jsp

  5. login-success.jsp


1)创建action类

要使用i18n拦截器,您需要扩展实现TextProvider的ActionSupport类。

Login.java

package com.javatpoint;
import com.opensymphony.xwork2.ActionSupport;

public class Login extends ActionSupport{
private String name;
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String execute(){
		return SUCCESS;
}
}

2)创建属性文件

现在在包中创建2个属性文件。 它的名字应该是以下格式:{actionname}_{languagecode}.properties。

Login_en.properties

login.msg=Good Morning!

Login_hi.properties

login.msg=Suprabhat!

3)创建index.jsp进行输入

这个jsp页面使用struts UI标签创建一个表单。 它从用户接收名称。

index.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>  
  
<s:form action="login">  
<s:textfield name="name" label="Name"></s:textfield>  
<!--  
<s:textfield name="request_locale" label="Language Code"></s:textfield> 
 -->  
<s:submit></s:submit>  
</s:form>

在 struts.xml中声明action

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">  
<struts>  
<package name="abc" extends="struts-default" >  
  
<action name="login" class="com.javatpoint.Login" method="execute">  
<result name="success">/login-success.jsp</result>  
</action>  
  
</package>  
</struts>



4)创建视图组件

现在使用文本标签来获取数据。 它用于i18n。

login-success.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>  
Welcome, <s:property value="name"/>  
<br>  
Message is: <s:text name="login.msg"></s:text>



Eclipse IDE中的目录结构


输出



现在我们来更改语言代码。 在这里,我们使用的是Chrome浏览器。

点击设置。


现在,点击显示高级设置。


现在,点击语言和输入设置。


现在,添加语言并将其移动到顶端,然后单击完成。


如果再次运行该应用程序,它将显示hindi消息。



如果在index.jsp文件中使用request_locale属性名称,则会根据给定的语言代码显示消息。

<%@ taglib prefix="s" uri="/struts-tags" %>

<s:form action="login">
<s:textfield name="name" label="Name"></s:textfield>
<s:textfield name="request_locale" label="Language Code"></s:textfield>
<s:submit></s:submit>
</s:form>

我们来看看输出。





版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Struts/struts-2-with-i18n-example-tutorial.html