为了减少Scriptlet的代码,增加标签编程的同通用性,所以使用JSTL来开发。
首先是:将jstl(jsp 标准标签库)的.jar 导入到项目中的lib中去。
然后将这个jstl.jsp中的几个主要的,.tld文件复制到WEN-INF中去。
在开始前可以配置 项目中的 web.xml 文件 :将那些tld 文件映射到某个点(这一步可以不用弄)
项目的整个过程:
.jsp -> web.xml--> .tld 文件-->.java 文件(.jar 里面的)
核心标签库:
c.tld
设置变量
删除变量
选择结构
循环结构
捕捉错误
导入页面 :设置属性
得到URL 变量
完成客户端跳转
<%
String arg[]={
"1","2","3","4","5"
};
pageContext.setAttribute("info",arg);
%>
varstatus 是var的状态
<c:forEach items="${info}" var="a" varStatus="s">
index=:${s.index}<br>
count=:${s.index}<br>
first=:${s.first}<br>
last=:${s.last}<br>
${a}<br><br>
</c:forEach>
结果:
index=:0
count=:0
first=:true
last=:false
1
index=:1
count=:1
first=:false
last=:false
2
index=:2
count=:2
first=:false
last=:false
3
index=:3
count=:3
first=:false
last=:false
4
index=:4
count=:4
first=:false
last=:true
5
国际化标准库:
设置区域
设置所有请求编码
读取资源文件
数字格式化标签
日期格式化标签
设置时区
<%
pageContext.setAttribute("date",new Date());
%>
<fmt:setLocale value="zh_CN"/>
<fmt:formatDate value="${date}"/>
<fmt:setLocale value="en_US"/>
<fmt:formatDate value="${date}"/>
//设置请求代吗
<fmt:requestEncoding value="GBK"/>
//读取资源文件
<fmt:bundle basename="Message" >
<fmt:message key="info" var="inforef" >
<fmt:param value="MLDN"/>
</fmt:message>
</fmt:bundle>
<fmt:setBundle basename="Message" var ="msg"/>
<fmt:message key="info" var="inforef2" bundle="${msg}">
<fmt:param value="MLDN"/>
</fmt:message>
<h3>${inforef}</h3>
<h3>${inforef2}</h3>
注意:在国际化资源文件开发中往往建立许多不同的属性文件
中文资源文件:Message_zh_CN.properties
英文资源文件:Message_en_US.properties
在访问时可以设置地区
然后访问就会访问指定地区的文件
例如:
<fmt:setLocale value="zh_CN"/>
<fmt:setBundle basename="Message" var="msg"/>
这时访问的是Message_zh_CN.properties 文件
<!-- 数字日期格式化标签 -->>
<fmt:formatNumber value="22222.3333333" maxIntegerDigits="3" maxFractionDigits="3" groupingUsed="true" var="num"/>
${num}
<%
pageContext.setAttribute("dataref", new Date());
%>
<fmt:formatDate value="${datatef}" type="both" dateStyle="default" var="date"/>
<fmt:formatDate value="${dataref}" type="both" dateStyle="default" var="date"/>
<fmt:formatDate value="${dataref}" type="both" dateStyle="full" var="date"/>
<fmt:parseDate value="2009面12越16日 18十25愤34吗128其" pattern="yyyy面MM越dd日 HH十mm愤ss吗SSS其" var="date2"/>
显示日期:${date2}
<!-- 设置时区 -->>
<%
pageContext.setAttribute("date", new Date());
%>
<fmt:timeZone value="HST">
<fmt:formatDate value="${date}" type="both" dateStyle="full" timeStyle="full" var="date_Ht"/>
</fmt:timeZone>
问啦查看时区:${date_Ht}
在web开发中进行的对数据库的操作都要放在javaBean(Dao)完成,用JSTL操作数据库不推荐使用
XML标签库:
解析
输出
设置xml变量
判断语句
选择语句
迭代语句
<c:import url="address.xml" var="add" charEncoding="GBK"></c:import>
<x:parse var="addressXml" doc="${add}" />
<!-- 输出信息 -->
姓名:<x:out select="$addressXml/addresslist/linkman/name"/>
编号:<x:out select="$addressXml/addrsslist/linkman/name/@id"/>
邮箱:<x:out select="$addressXml/adresslist/linkman/email"/>
<!-- 创建变量 -->
<x:set var="nameXml" scope="page" select="$addressXml/addresslist/linkman"/>
从变量显示姓名:<x:out select="$nameXml/name"/>
<!-- 判断句 -->
<x:if select="$nameXml/name/@id='lxh'" var="jieguo"/>
<x:if select="$nameXml/name/@id='lxh'" var="jieguo2">
${jieguo2}
</x:if>
${jieguo}
<!-- 与c:choose 几乎一样 -->
<x:choose>
<x:when select="$nameXml/name='李兴华s'"><x:out select="$nameXml/name"/></x:when>
<x:otherwise><h1>hahaha</h1></x:otherwise>
</x:choose>
<x:forEach select="$nameXml" var="linkman">
<x:out select="name"/>
<x:out select="name/@id"/>
</x:forEach>
函数标签库:
对字符串的一些操作
查找字符串
匹配字符串
转化大小写
字符截取
字符串查分
字符串连接
将<,> 等变为转义字符
查找,换
<%
pageContext.setAttribute("info","Hello,asdfasdfas,sadfasfsaf");
%>
是否有MLDN--->>:: ${fn:contains(info,"MLDN")}
是否有MLDN--->>:: ${fn:containsIgnoreCase(info,"MLdn")}
${fn:startsWith(info,"Hello") }
${fn:indexOf(info,",") }
${fn:replace(info,"MLDN","www.MLDNJAVA.cn") }
${fn:substring(info,0,10) }
${fn:split(info," ")}
</body>