国际化动态文件和其他标签的实例应用

来源:互联网 发布:js 数组 查找 编辑:程序博客网 时间:2024/05/01 22:56

国际化动态文件和其他标签的实例应用

一  动态文件的概念

1.什么时候使用动态文本

如果字符串中包含了多个与国际化相关的数据,可以使用MessageFormat类对这些数据进行批量处理 ----比如一段字符串中包含时间、数字、货币、、可以进行批量处理

(1)MessageFormat类允许开发人员用占位符替换掉字符串中的敏感数据(即国际化相关的数据)。

(2)MessageFormat类在格式化输出包含占位符的文本时,messageFormat类可以接收一个参数数组,以替换文本中的每一个占位符。

(3)批量处理是把国际化的文件用占位符代替,组成一个数组

二  动态文本的使用

1.在java中动态文本的使用

(1)把字符串改为(模式字符串)占位符

     At 12:30 pm onjul 3,1998, a hurricance destroyed 99 houses and caused $1000000 of damage

代替为:

模式字符串:

pattern =At [0], a hurricancedestroyed [1] houses and caused [2] of damage

(2)设置动态文本的模型,并指明显示的国家,可以值确定模式,默认的国家的当地的

  MessageFormat mf = newMessageFormat(pattern, Locale.US);

(3)创建数组为模式字符串赋值(为占位符赋值)

   Object[] objs = { new Date(),newInteger(99), new Double(1e7)};

(4)格式转换并输出

      String result = mf.format(objs);

      System.out.println(result);

  注:按以上的说法,只是固定的把它写到了java文件中,可以把模式字符串部署到资源组中

2.在jsp页面中动态文本的运用----标签的使用

   (1)创建资源包对象,并存在bundle对象中

<fmt:setBundle basename="com.hbsi.resource.MyResource"var="bundle" scope="request"/>

(2)读取并输出

      <fmt:message key="title"bundle="${bundle}">

      <!-- 为占位符赋值 ----------- 批量处理-->

          <fmt:param value="${date}" ></fmt:param>

          <fmt:param value="${number1}"></fmt:param>

          <fmt:param value="${number2}"></fmt:param>

      </fmt:message>

注:如果在<fmt:message>标签中,没有key属性,可以在<fmt:message>的双标签中写上在value中写的文件中的键,例:

    <fmt:messagebundle="${bundle}">

      title

      <fmt:param value="${date}" ></fmt:param>

      <fmt:param value="${number1}"></fmt:param>

      <fmt:param value="${number2}"></fmt:param>

    </fmt:message>      

三  国际化中其他标签的使用

1.乱码问题  

用java方法解决

 <%

   request.setCharacterEncoding("utf-8");

   %>

   --%>

 用国际化标签设置

   <fmt:requestEncodingvalue="utf-8"/>

2.设置时区

    (1)<fmt:timeZone>标签

<fmt:timeZone value="GMT+08:00">

   </fmt:timeZone>

注:<fmt:timeZone>设置时区 ,但是他的设置值只对标签体中的内容有效   

    (2)<fmt:setTimeZone>标签

      设置时间

       <jsp:useBean id="date"class="java.util.Date"></jsp:useBean>

       <fmt:setTimeZone value="GMT+08:00"/>

      <%---日期类型的转换 --%>

      <fmt:formatDate value="${date}" type="both" dateStyle="long" timeStyle="short" var="time1"scope="request"/><br/>

      ${time1}

      

      <fmt:setTimeZone value="GMT+07:00"/>

      <fmt:formatDate value="${date}" type="time" timeStyle="full" />

      

    <fmt:formatDate value="${date}" pattern="yyyy.MM.dd HH:sss.SSS a"/>

fn:length函数

fn:length函数用于返回一个集合或数组对象中包含的元素的个数,或返回一个字符串中包含的字符的个数,返回值为int类型。fn:length函数接收一个参数,这个参数可以是<c:forEach>标签的items属性支持的任何类型,包括任意类型的数组、java.util.Collection、java.util.Iterator、java.util.Enumeration、java.util.Map等类的实例对象和字符串。

如果fn:length函数的参数为null或者是元素个数为0的集合或数组对象,则函数返回0;如果参数是空字符串,则函数返回0。例程8-55是使用fn:length函数的实例程序。

例程8-55  fn_length.jsp

<%@ taglibprefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

<%@ pagecontentType="text/html;charset=gb2312" %>

<%@ pageimport="java.util.*, org.it315.UserBean" %>

<%

       Collection users = new ArrayList();

       for(int i=0; i<5; i++)

       {

              UserBean user = new UserBean();

              user.setUserName("user"+ i);

              user.setPassword("guest"+ i);

              users.add(user);

       }

       session.setAttribute("users",users);

%>

There are${fn:length(users)} users online.<hr />

字符串“www.it315.org”中包含 ${fn:length("www.it315.org")} 个字符

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子听不懂老师讲课怎么办 高一上课听不懂怎么办 上课学生纪律差怎么办 一年级学生认字少怎么办 孩子上课做不住怎么办 幼儿园小孩上课乱跑怎么办 孩子挑食不爱吃饭怎么办 幼儿园孩子不听指令怎么办 1岁宝宝多动症怎么办 3岁宝宝胆小怎么办 爱挑食的孩子怎么办 小孩上课经常发呆怎么办 小孩不爱吃饭挑食怎么办 一年级小孩学习不好怎么办 宝宝上课坐不住怎么办 八个月婴儿拉稀怎么办 八个月孕妇拉稀怎么办 孩子好动爱喊怎么办 八个月小孩发烧怎么办 孩子好动怎么办学龄前教育 小孩好动症该怎么办 小孩子好动症该怎么办 怀孕5个月胎死亡怎么办 小孩多动调皮怎么办 手心老是出汗是怎么办 孩子吃饭特别慢怎么办 小孩子老想睡觉怎么办 孩子下午上课犯困怎么办 小孩子有多动症该怎么办 初中写作业犯困怎么办 孩子晚上学习困怎么办 小孩子容易兴奋激动怎么办 中考时过度兴奋怎么办 小孩兴奋不睡觉怎么办 孩子突然反常不听话怎么办? 婴儿亢奋不睡觉怎么办 宝宝听力筛查没通过怎么办 7个多月宝宝缺钙怎么办 暑假孩子天天看电视怎么办 移植后天天便秘怎么办 天天拉屎还便秘怎么办