struts国际化和国际化输出占位符

国际化


获取资源文件可以有: 全局范围/包范围/action范围

国际化案例:(国际化其实很简单的)

第一步:先创建好资源文件,注意资源文件名格式


第二步:

在struts.xml中使用资源文件配置常量配置   

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPEstruts PUBLIC

    "-//ApacheSoftware Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<!-- 通过这个常量配置资源文件,定义为全局资源 xiehande为资源文件的名字头 -->

<constantname="struts.custom.i18n.resources" value="xiehande" />

 

    <package name="person"namespace="/person" extends="struts-default">

        <action name="manage"class="com.xiehande.action.test">

         <result name="message">/message.jsp</result>

        </action>

    </package>

</struts>

                 

第三步:方法一,在全局范围内访问:index.jsp中,使用标签  <s:textname="name"></s:text>

在action中访问的时候

利用ActionSupport类中的getText()方法获取资源文件,再将其放入ActionContext中

 

test.java

 

packagecom.xiehande.action;

importcom.opensymphony.xwork2.ActionContext;

importcom.opensymphony.xwork2.ActionSupport;

 

//在包范围使用资源文件,可以继承ActionSupport类,使用getText()方法

public class testextends ActionSupport {

 

         @Override

         public String execute() throwsException {

                   // TODO Auto-generated methodstub

                   //可以放到ActionContext中,全局都可以访问

                   ActionContext.getContext().put("message",this.getText("name"));

                   return "message";

         }

 

}

 

 

即可以在jsp中  ${message}访问到。

可以这样更改IE的配置就可以看到资源文件的方便语言转换了。

 

总体而言,国际化确实挺简单的,不过实际开发使用的很少的》

 

国际化输出带占位符的国际化信息


国际化其实很简单,作用如下:在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源属性文件中,显然会导致资源文件变的过于庞大、臃肿,不便于维护,这个时

候我们可以针对不同模块,使用包范围来组织国际化文件。 

 

和国际化一样,先建立资源文件

在全局范围访问:

<%@page language="java"import="java.util.*" pageEncoding="UTF-8"%>

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

<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

 

    <title>国际化</title>

    <meta http-equiv="pragma"content="no-cache">

    <meta http-equiv="cache-control"content="no-cache">

    <meta http-equiv="expires"content="0">   

 

  </head>

 

  <body>

  <s:text name="name">

  <s:param>你好!</s:param>

  <s:param>!谢谢光临</s:param>

  </s:text>

  </body>

</html>

 

结果:


在action中访问:

 

test.java

 

package com.xiehande.action;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

 

//在包范围使用资源文件,可以继承ActionSupport类,使用getText()方法

public class test extends ActionSupport {

 

         @Override

         publicString execute() throws Exception {

                   //TODO Auto-generated method stub

                   //可以放到ActionContext中,全局都可以访问

                   ActionContext.getContext().put("message",this.getText("name",newString[]{"你好!","谢谢光临!"}));

                   return"message";

         }

 

}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值