国际化资源文件

不适用Struct2内置的方式配置资源文件

1,在创建后缀为_语言_国家.properties文件(message_en_US.properties,message_zh_CN.properties)
在这里插入图片描述

register.username=用户名
register.password=密码
register.submit=注册

2,使用java提供的ResourceBundle类可以读取资源包的国际化配置文件

public class I18NTest {
    @Test
    public void test1(){
    //不指定Locale.US 则读取默认文件
        ResourceBundle bundle = ResourceBundle.getBundle("org.ccit.com.resources.message",Locale.US);
        System.out.println(bundle.getString("register.username"));
        System.out.println(bundle.getString("register.password"));
        System.out.println(bundle.getString("register.submit"));
    }
}

3,在jsp中使用国际化

 <%
        Locale aDefault = Locale.getDefault();
        ResourceBundle bundle = ResourceBundle.getBundle("org.ccit.com.resources.message",aDefault);
    %>
    <form>
            <%=bundle.getString("register.username") %>:<input type="text" name="username"/><br>
            <%=bundle.getString("register.password")%>>:<input type="password" name="password"/><br>
            <input type="submit" value="<%=bundle.getString("register.submit")%>>">--%>
    </form>

使用Struts提供的国际化

1,创建固定格式名称的资源包 在struts.xml配置全局的资源包
在这里插入图片描述

<struts>
  <constant name="struts.custom.i18n.resources" value="org.ccit.com.resources.message"></constant>
</struts>

2,在对应包内创建资源包 命名规范:package_语言代码_国家代码.properties
3,在对应action同一目录下创建资源包 命名规范:动作类名称_语言代码_国家代码.properties

资源包调用顺序
局部资源包 包范围内资源包 全局资源包

jsp读取资源文件
在jsp页面中使用struts2内置的表单标签

 <s:form  action="register" namespace="/user" >
        <s:textfield label="register.username" requiredLabel="true" requiredPosition="left"></s:textfield><br>
        <s:password label="register.password" requiredLabel="true" showPassword="true"></s:password><br>
        <s:submit value="register.submit" ></s:submit>
 </s:form>

在jsp页面可以使用s:i18n标签指向读取的国际资源包文件

 <s:form  action="register" namespace="/user" >
            <s:i18n name="org.ccit.com.resources.message">
<!--                <s:textfield label="register.username" requiredLabel="true" requiredPosition="left"></s:textfield><br>-->
<!--                <s:password label="register.password" requiredLabel="true" showPassword="true"></s:password><br>-->
<!--                <s:submit value="register.submit" ></s:submit>-->
            </s:i18n>
        </s:form>

action内读取资源文件

public String register(){
        //使用getText方法获取
        String username=getText("register.username");
        System.out.println(username);
        return NONE;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值