jsp中jstl标签库 function /i18n

function标签库对el表达式的输出值进行了处理:

使用:在el表达式中使用:${ fn:函数名(参数...)}

function标签库函数使用:

  1:${fn:contains(name, searchString)}    name变量的字符串值是否包含searchString子串,返回boolean值

   2:${fn:containsIgnoreCase(name, searchString)}    与1相同+忽视大小写

  3:${fn:endsWith(filename, ".txt")}  判断filename是否以.txt子串结束 ,返回boolean值

  4:${fn:escapeXml(param:info)}   Escapes characters that could be interpreted as XML markup.返回string值

  5:${fn:indexOf(name, "-")}    name中第一次出现-字符的下标  返回int值

  6:${fn:join(array, ";")}   将array数组,用;连接成一个字符串,返回string值

  7:${fn:length(shoppingCart.products)} shoppingCart.products变量的长度,返回int值

  8:${fn:replace(text, "-", "•")}  将text中的-字符串用•字符串代替,返回行的字符串String值

  9:${fn:split(customerNames, ";")}  将customerNames用;分割,返回字符串数组

  10:${fn:startsWith(product.id, "100-")}  判断product.id是否以100-子串开头 ,返回boolean值

  11:${fn:substring(zip, 6, -1)}  截取zip的子串,从下标为6 到length-1(不包含)的子串,返回子串String值

  12:${fn:substringAfter(zip, "-")} 将zip中  从 第一次出现-字符串的下标 到最后 截取成子串,返回子串String值

  13:${fn:substringBefore(zip, "-")}  将zip中  从下标0  到  第一次出现-字符串的下标 (不包含) 截取成子串,返回子串String值

  14:${fn.toLowerCase(product.name)}  将product.name全部字母转换成小写,返回新的String值

  15:${fn.UpperCase(product.name)}  将product.name全部字母转换成大写,返回新的String值

   16:${fn.trim(name)}  name前后空格去掉,返回新的String值

i18n国际化标签库:

1:建立资源文件:文件名格式:资源名_语言_国家.格式名

文件内容:key=value格式


在java中使用:

public static void main(String[] args) {
		//参数是:baseName-- 本例指的是资源文件名是: msg**.properties
		//ResourceBundle rd = ResourceBundle.getBundle("msg");//读取的是:msg_zh_CN.properties
		//ResourceBundle rd = ResourceBundle.getBundle("msg",Locale.US); //读取的是:msg_en_US.properties
		ResourceBundle rd = ResourceBundle.getBundle("msg",Locale.CANADA); //本例读取的是:msg_zh_CN.properties ---因为是中文系统。按原理,如果没找到对应国家语种的资源文件(如果不存在时,还会根据系统的国家语种再找一次,如果还没有),则是读取的是默认的msg.properties
		String str1 = rd.getString("welcome");//get(key)获取value值
		String str2 = rd.getString("time");
		System.out.println(str1+"----"+str2);
	}
在jstl标签中使用:

 

<%@page import="cn.hncu.elWeb.domain.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
     <fmt:setLocale value="zh_CN"/>
     <fmt:setBundle basename="msg"/>
     <!-- 真正搞国际,应该要把设置Locale和Bundle的代码放在head标签中,页面只负责显示。 -->
  </head>
  
  <body>
             张三,<fmt:message key="welcome"/><br/>
     <fmt:message key="time"/>fddfdfdfdfdfdf
     
     
     <hr/>
     <!-- 相比上一版本,把国家语种用参数进行传递 -->
     <a href="?loc=en_US">English</a>
     <a href="?loc=zh_CN">中文</a>
     <fmt:setLocale value="${param.loc}"/>
     <fmt:setBundle basename="msg"/>
           张三,<fmt:message key="welcome"/><br/>
     <fmt:message key="time"/>fddfdfdfdfdfdf
     
     
     <hr/>
     <!-- 再演示一下多个资源的情况,第二个资源及以后都必须取别名(变量名)。前面(第一个)没取变量名的那个叫默认资源  -->
     <fmt:setBundle basename="a" var="aaa" scope="session"/>
     <!-- 如果多个页面都要使用,那么得把作用域设成session -->      
           
           张三,<fmt:message key="welcome"/><br/>
     <fmt:message key="time"/>fd8888dfdf
     <br/>
     <!-- 如果是从非默认资源中读取,那么得指定资源名称即aaa。如果没有指定名称,那么就是从默认的读取 -->
     <fmt:message key="address" bundle="${aaa}"></fmt:message>
     <br/>
     <a href="<c:url value='/jsps/c.jsp'/>">到网站的其它页面去看看</a>
  </body>
  
  
</html>
注意:1:setBundle前面必须加上setLocale否则默认系统语言(顺序不可调)

            2: setBundle不加var值,属于默认,多个setBundle要加var值,否则覆盖

          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值