native2ascii -encoding utf-8 resources_t.properties resources_zh_CN.properties
JSTL(JavaServer Pages Standard Tag Library)
包括5个标记库
.Core标记库
.Format标记库
.XML标记库
.SQL标记库
.Function标记库
最新的版本:JSTL1.2
Java EE 5的标准技术
Core http://java.sun.com/jsp/jstl/core c //核心标记库,处理循环,变量
Format http://java.sun.com/jsp/jstl/fmt fmt //时间日期,国际化
SQL http://java.sun.com/jsp/jstl/sql sql //SQL操作
XML http://java.sun.com/jsp/jstl/xml xml //xml操作
Function http://java.sun.com/jsp/jstl/function fn //字符串有关的操作
例子程序
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
用户名:<c:out value="${username}"/>
下载安装JSTL
http://www.apache.org/dist/jakarta/taglibs/standard/
MYEXCLIPSE 已经有了JSTL
Core标记库
操作变量:out,set,remove.catch
条件操作:if,choose,when,otherwise
循环操作:forEach,forTokens
URL操作:import,url,redirect,param
语法
<c:out value="value" [escapeXml="{true|false}"] default="defaultValue"]/>
或者<c:out value="value" [escapeXml="{true|false}"]>
</c:out>
属性
属性名 描述 EL 必须 缺省值
value 需要输出的值,可以是EL表达式或常量 可以 是 无
default value值为空时所输出的内容 可以 否 无
escapeXml 为true对输出内容中的<,>,',",和&字符进行转义,分别转成<,>,',"
和"和&.为false就不进行转义 可以 否 true
语法
<c:set var="name" value="value"/>
<c:set var="name" value="value>
</c:set>
<c:set value="value" target="target" property="propertyName"/>
<c:set target="target" property="propertyName">
value
</c:set>
属性 描述 EL 是否必须 缺省值
value 要保存的内容,可以是EL表达式 可以 是 无
target 要修改属性的对象名,一般为JavaBeans对象名 可以 否 无
property 要修改的JvaBeans的属性 可以 否 无
var 要保存内容的变量名 否 是 无
scope 要保存内容的变量的作用范围 否 否 page
<c:remove var="name" scope="page|request|session|application"/>
属性
属性名 描述 EL 是否必须 缺省值
var 被删除的变量名字 否 是 无
scope 被删除变量的作用范围 否 否 page,request,session,application//依次查
捕获违例
语法
<c:catch var="name">
body content
</c:catch>
属性 描述 EL 是否必须 缺省值
var 用来保存违例信息的变量名 否 否 无
语法
<c:if test="condition" var="name" scope="page|request|session|application"/>
<c:if ....>
</c:if>
属性 描述 EL 是否必须 缺省值
test 判断所要使用的条件 可以 是 无
var 保存条件结果的变量的名称 否 否 无
scope 保存条件结果的变量的作用范围 否 否 page
<c:choose>
body content(<when>and<otherwise>)
</c:choose>
<c:when test="condition">
body content
</c:when>
属性 描述 动态 是否必须 缺省值
test 如果它的结果为true,执行<c:when>所 可以 是 无
包含的内容,false则不执行<c:when>
所包含的内容
<c:otherwise>
body content
</c:otherwise>
<c:forEach var="name" items="collection" varStatus="varStatusName" begin="begin" end="end"
step="step">
body content
</c:forEach>
属性 描述 EL 是否必须 类型 缺省值
begin 开始下标 可以 否 int 0
end 结束下标 可以 否 int 集合中的最后一个成员索引
step 步长 可以 否 int 1
var 代表当前成员的变量名 否 否 String 无
items 进行循环的集合 否 否 String数组MapCollectiontIteratorEnumeration无
varStatus 显示循环状态的变量 可以 否 String 无
使用varStatus属性
名称 类型 描述
index int 现在所操作的成员的索引
count int 总共所操作的成员的总数
first boolean 现在所操作的成员,是否为第一个成员
last boolean 现在所操作的成员,是否为最后一个成员
对字符串进行分割
<c:forTokens items="stringOfTokens" delims="delimiters" [var="name"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
body content
</c:forTokens>
属性 描述 EL 是否必须 缺省值
items 进行迭代处理的变量 可以 是 无
delims 分割符号 可以 是 无
begins 开始下标 可以 否 0
end 结束下标 可以 否 集合中的最后一个成员的索引
step 步长 可以 否 1
属性 描述 EL 是否必须 缺省值
var 代表当前成员的变量的名称 否 否 无
varStatus 包含遍历状态的变量 否 否 无
把另外一个页面的内容引到当前页面来
<c:import url="url" [content="content"] [var="name"] [scope="{page|request|session|applocation}"] [charEncoding="charEncoding"]>
<c:param>
</c:import>
<c:import url="url" [context="context"] varReader="varReaderName" [charEncoding="charEncoding"]>
body content
</c:import>
属性 描述 EL 是否必须 缺省值
url 需要导入页面的url地址 是 是 无
context 本地Web应用的名字 是 否 当前应用的名字
charEncoding 设置导入数据的字符编码 是 否 ISO-8859-1
var 接受导入文本的变量名称 否 否 无
scope 接受导入文本内容的变量的作用范围否 否 page
varReader 用于接受导入文本的java.io.Reader变量的名称 否 否 无
<c:url value="value" [context="context"] [var="name"] [scope="{page|request|session|application}"]/>
<c:url value="value" [context="context"] [var="name"] [scope="{page|request|session|application}"]>
<c:param/>
</ c:url>
属性 描述 EL 是否必须 缺省值
value url地址 是 是 无
context Web应用的名字 是 否 当前Web应用的名字
var 保存url地址的变量的名称 否 否 输出到当前页面
scope 存储url地址的变量的作用范围 否 否 page
<c:redirect url="value" [context="context"]/>
<c:redirect url="value" [context="context"]>
<c:param/>
</c:redirect>
属性 描述 是否必须 缺省值
url url地址 是 无
context 要转向到的Web应用的名字 否 当前Web应用的名字
format
国际化有关
setLocale,requestEncoding,bundle,message,param,setBundle
时间日期有关,这些功能不在JSP页面实现,所以下面标记不常用
formatNumber,formatDate,parseDate,parseNumber,setTimeZone,timeZone
<fmt;setLocale value="locale" [variant="variant"] [scope="{page|request|session|application}"/>
属性 描述 EL 是否必须 缺省值
value 表示该语言环境的一个字符串,或者是 可以 是 无
java.util.Locale类的对象
scope 指定这个对象的作用范围,有效 否 否 page
值为:page,request,session,
application
variant 进一步针对特定的平台或供应商定 可以 否 无
语言环境.例如,MAC和WIN分别对应Macintosh
和Windows平台
<fmt:setBundle basename="basename" [var="name"] [scope="{page|request|session|application}"]/>
属性 描述 EL 是否必须 缺省值
basename 设置使用的资源文件束文件的路径和名称 可以 是 无
不应当包含任何本地化后缀或文件扩展名
var 设置了该属性,那么将把由basename属性所 否 否 无
标识的资源束赋给该属性值所命名的变量
scope 指明缺省资源束设置所应用的JSP作用域 否 否 page
<fmt:Bundle basename="base" [prefix="prefix"]/>
body content
</fmt:bundle>
属性 描述 EL 是否须 缺省值
basename 设置使用的资源束文件的路径与名称,不应当包含 可以 是 无
任何本地化后缀或文件扩展名
prefix 为所嵌套的<fmt:message>标记的key值指定缺省前缀 可以 否 无
<fmt:message key="messageKey" [bundle="resourceBundle"][var="name"][scope="{page|request|session|application}"]/>
<fmt:message [bundle="resourceBundle"] [var="varNmae"] [scope="{page|request|session|application}"]>
key
[<fmt:param>]
</fmt:message>
属性 描述 EL 是否必须 缺省值
key 用来确定在资源束中定义哪个文本消息进行输出显示 可以 是 无
bundle 用来指定一个显式的资源束,用来查找由key属性标识的消息 可以 否 无
请注意,该属性的值必须是实际的资源束,比如当指定
<fmt:setBundle>操作的var属性时由该标记所赋予的资源束
<fmt:message>的bundle属性不支持字符串值
var 该标记所生成的文本消息赋给指定的变量,而不是输出到JSP页面 否 否 无
中
scope 用来指定由var属性指定的变量的作用域,有效值:page,request 否 否 page
和application
<fmt:requestEncoding [value="charsetName"]/>
作用request.setCharsetEncoding("");
<fmt:param value="messageParameter"/>
<fmt:param>
body content
</fmt:param>
>native2ascii -encoding utf-8 displaytag_1.properties displaytag_zh_CN.properties
SQL标记库
<sql:setDataSource>
<sql:query>
<sql:param>
<sql:dateParam>
<sql:update>
<sql:transaction>
XML标记库 不建议在表现层使用
<x:set><x:out><x:when><x:choose><x:otherwise><x:if><x:if><x:forEach><x:param><x:parse><x:transform>
Functions标记库
fn:length(item)
返回参数item中包含元素的个数,参数item类型可以是数组,Collection或者Stringl.如果是String类型返回是字符串中的字符个数
${fn:length("lichao")}
fn:contains(String,subString)
用来判断源字符串是否包含子字符串
${fn:contains("lichao","li")}
fn:containsIgnorCase(String,subString)
与fn:contains()函数的功能差不多,区别是该函数对于子字符串的包含比较忽略大小写
fn:endsWith(String,suffix)
用来判断源字符串是否符合特定的词尾
${fn:endsWith("lichao","chao")}
fn:escapeXml(String)
用于将特殊字符转化为转义以后的字符,返回转换以后的字符串
${fn:escapeXml("<test>"}
fn:indexOf(String,subString)
用于取得子字符串与源字符串匹配的开始位置,若子字符串与源字符串中的内容没有匹配成功将返回-1
${fn:indexOf("lichao","ic")}
fn:join(array,separator)
为一个字符串组中的每个字符串加上分隔符,并连接起来
${fn:join(array1,"")}
fn:replace(String,before,after)
为源字符串做替换
${fn:replace("lichao","li","LI")
fn:split(String,separator)
将一组由分隔符的字符串转换成字符串数组
${fn:split(a,e,i),","}
fn:startsWith(String,prefix)
用来判断源字符串是否符合特定开头
${fn:startsWith("lichao","li")}
fn:substring(String,begin,end)
截取字符串
${fn:substring("lichao",1,3)}
fn:substringAfter(String,substring)
返回参数substring在参数string中后面的那一部分字符串
${fn:substringAfter("lichao","ic"}
fn:substringBefore(string,substring)
返回参数substring在参数string中前面的那一部分字符串
${fn:substringBefore("lichao","ic"}
fn:toLowerCase(string)
将源字符串中的字符全部转换成小写字符
${fn:toLowerCase(lichao)}
fn:toUpperCase(string)
将源字符串中的字符全部转换成大写字符
${fn:toUpperCase(LICHAO)}
fn:trim(string)
删除源字符串中开始与结尾的空格
${fn:trim("li chao")}
柴油发电机
发电机
柴油机
柴油发电机
13636374743(上海)
13291526067(嘉兴)