10.struts2国际化(struts2笔记)

一、普通java工程实现国际化(工程struts2_3100_I18N_Test

首先在src下存放国际化文件
app_en_US.properties

welcome.msg=hello,sir

app_zh_CN.properties

welcome.msg=\u6B22\u8FCE\u4F60\uFF01

我们使用一个普通的java程序进行测试:
Test.java

package com.bjsxt;
import java.util.Locale;
import java.util.ResourceBundle;

public class Test {
    public static void main(String[] args) {
        ResourceBundle res = ResourceBundle.getBundle("app", Locale.US);
        System.out.println(res.getString("welcome.msg" ));
    }
}

说明:我们这里在方法getBundle中的第一个参数是填写资源文件的开头部分,资源文件中的第二部分(如en)表示语言,第三部分(如US)表示国家。方法的第二个参数选择国家。

二、struts2中的国际化(工程struts2_3200_BBS2009_08_I18N

struts2中国际化分为三个级别,分别是action级、package级、工程级,作用范围依次变大,但是一般我们都使用工程级。

2.1 action级和package级国际化

这两种方式一般不太用,这里不详细讲。
需要明白的是action级的资源文件写法一般为LoginAction_en_US.propertiesLoginAction_zh_CN.properties,这里名字的第一部分最好和action的名字相同,这个级别的国际化资源文件只能给对应的action使用。而package级别的资源文件的名字一般为package_en_US.propertiespackage_zh_CN.properties,注意第一部分一定要是package。这两类资源文件都放在action包中。

2.2 工程级国际化

此时资源文件一般放在src目录下。
bbs2009_en_US.properties

login.username=username:
login.password=password:
login.login=login
welcome.msg=welcome\:{0}

bbs2009_zh_CN.properties

login.username=\u7528\u6237\u540D\uFF1A
login.password=\u5BC6  \u7801\uFF1A
login.login=\u767B\u5F55
welcome.msg=\u6B22\u8FCE\u4F60\uFF1A{0}

这里以登录为例:
LoginAction.java

package com.bjsxt.bbs2009.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
    
    private String username;
    private String password;

    public String login() throws Exception {
        
        return "success";
    }
    
    public String input() {
        return "input";
    }

    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;
    }
}

struts.xml




    
    
    
    
        
        
        
            /admin/index.html
        
        
        
            /admin/{1}_{2}.jsp
            /admin/{1}_{2}.jsp
        
    
    
    
        
        
            /index.jsp
        
    

Login_input.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>


  
    Login_input
    
    
        

  
  
  
    
" />

Login_login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>


  
    Login_login
    
    
        

  
  
  
    欢迎您:
    
        
    
  

说明:

  • 1.首先在配置文件中我们需要配置资源文件:

其中value值是资源文件名字的第一部分。

  • 2.在输入页面中我们取值的方法是
value="getText('login.username')"
  • 3.在登录成功后的页面(Login_login.jsp)中我们取得用户名,但是这个名字我们是不能在资源文件中写死的,所以我们采用动态指定。
  • 4.有时候我们可以看到有一种网站,当我们点击链接就会将整个网站的语言变换。
    我们在Login_input.jsp中加上两个链接:
en
  cn

其中lang是action的name属性值,提交到特定的action去处理。

最后:
这个内容在以后的开发中用的较少,这里不多说。

你可能感兴趣的:(10.struts2国际化(struts2笔记))