1 . 在 Action 类中. 若 Action 实现了 TextProvider 接口, 则可以调用其 getText() 方法获取 value 值
> 可以通过继承 ActionSupport 的方式 实现TextProvider接口。
2. 页面上
① 可以使用 s:text 标签;
② 对于表单标签可以使用表单标签的 key 属性值
> 若有占位符, 则可以使用 s:text 标签的 s:param 子标签来填充占位符
> 可以利用标签和 OGNL 表达式直接访问值栈中的属性值(对象栈 和 Map 栈)
//国际化资源文件中配置的格式
time=Time:{0}
//对应的页面显示样式
------------------------------------
//国际化资源文件中配置的格式
time2=Time:${date}
//对应的页面显示样式
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 我有来了,俺就是华丽丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
1.项目结构
2. 类:
person 类关键看birth 属性
package com.baidu.domain;
import java.util.Date;
public class Person {
private String username;
private String password;
private Date birth;
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Action类 TestI18nAction.java
注意看,在 Action 中是如何获取国际化资源文件的
package com.baidu.i18n;
import java.util.Arrays;
import java.util.Date;
import com.baidu.domain.Person;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;
public class TestI18nAction extends ActionSupport implements ModelDriven ,Preparable {
private static final long serialVersionUID = 1L;
private Date date ;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public String execute() throws Exception {
Date birth = person.getBirth();
date = new Date();
//1. 在Action 中如何访问国际化资源文件的value 值
String username = getText("username");
System.out.println(username);
//2.在Action 中 如何访问 带占位符 的国际化资源文件 使用国际化建议文件中的键 time 和time2
String time = getText("time",Arrays.asList(birth));
System.out.println(time);
String time2 = getText("time2",Arrays.asList(birth));
System.out.println(time2);
return "success";
}
private Person person;
@Override
public Person getModel() {
person = new Person();
return person;
}
@Override
public void prepare() throws Exception {
}
}
TestI18nAction.properties
username=^_^UserName
password=^_^Password
submit=^_^Submit
time=^_^Time:{0}
time2=^_^Time2:${date}
TestI18nAction_zh_CN.properties
username=^_^\u7528\u6237\u540D
password=^_^\u5BC6\u7801
submit=^_^\u63D0\u4EA4
time=^_^\u65F6\u95F4:{0}
time2=^_^\u65F6\u95F42:${date}
TestI18nAction_en_US.properties
username=^_^UserName
password=^_^Password
submit=^_^Submit
time=^_^Time:{0}
time2=^_^Time2:${date}
/i18n.jsp
/i18n.jsp
/input.jsp
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
Insert title here
Test I18n
i18n.jsp
注意看页面是如何获取国际化资源信息的
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
Insert title here
6. 效果
运行 index.jsp
点击 TestI18n 到,
输入 信息
点击Submit 提交后