个性化阅读
专注于IT技术分析

Struts 2 i18n用法示例图解教程

  1. i18n拦截器
  2. i18n拦截器的参数
  3. i18n拦截器示例

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

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

默认情况下, 它位于defaultStack中, 因此你不必显式指定它。


i18n拦截器的参数

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

Parameter Description
parameterName 它指定HTTP请求参数的名称。默认情况下, 它设置为request_locale。
attributeName 指定用于存储语言环境的会话密钥的名称。默认为WW_TRANS_I18N_LOCALE。

i18n拦截器示例

在此示例中, 我们将创建以下页面:

  1. Login.java
  2. Login_en.properties和Login_hi.properties
  3. struts.xml
  4. index.jsp
  5. login-success.jsp

1)创建动作类

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

Login.java

package com.srcmini;
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中定义动作

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.srcmini.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中的目录结构

i18n目录结构

下载这个在Eclipse IDE中开发的示例(无jar)

下载在Myeclipse IDE中开发的此示例


输出

Struts2 i18n示例输出1
Struts2 i18n示例输出2

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

点击设置。

Struts2 i18n示例输出3

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

Struts2 i18n示例输出4

现在, 单击语言并输入设置。

Struts2 i18n示例输出5

现在, 添加印地文语言并将其移至顶部, 然后单击”完成”。

Struts2 i18n示例输出6

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

Struts2 i18n示例输出7
Struts2 i18n示例输出8

如果在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>

让我们看一下输出。

Struts2 i18n示例输出9
Struts2 i18n示例输出10

Struts2 i18n示例输出11
Struts2 i18n示例输出12
赞(0)
未经允许不得转载:srcmini » Struts 2 i18n用法示例图解教程

评论 抢沙发

评论前必须登录!