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

来源:互联网 发布:美股交易员知乎 编辑:程序博客网 时间:2024/06/08 04:22

国际化


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

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

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


第二步:

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

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

<!DOCTYPEstrutsPUBLIC

    "-//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"/>

 

    <packagename="person"namespace="/person"extends="struts-default">

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

         <resultname="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"%>

<!DOCTYPEHTMLPUBLIC "-//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";

         }

 

}


 

原创粉丝点击