JSTL

JSTL:JSP Standard Tag Libaray(JSP标准标签库)
主要分为五大类:
1.核心标签库(Core)
2.l18N格式标签库(l18N-capable format tag libaray)
3.SQL标签库(SQL tag libaray)
4.XML标签库(XML tag libaray)
5.函数标签库(Functions tag libaray)

优点:
1.可读性,易维护,开发.
2.页面设计人员和标签功能开发人员相分离.
3.减少脚本量.

前提条件:JSTL1.1必须在Servlet2.4和JSP2.0以上的容器才能正常工作。

下载JSTL1.1:http://jakarta.apache.org/

导包:将jstl.jar,standard.jar导入
在JSP上写<%@ taglib uri="uri" prefix="prefix" %>

1.核心标签库(Core):
a.表达式操作:
显示:<c:out value="${value}" [escapeXml="true|false"] [default="defaultvalue"]/>
escapeXml:是否使用转换符号,eg:<(&lt), >($gt)
default:设置默认值
类似:<%= %>

赋值:<c:set value="${value}" var="unable-EL" scope="unable-EL" target="${target}" property="${property}"/>
var:设置变量名称(不能用EL表达式)
scope:设定变量范围(不能用EL表达式),默认为page,可为application,session,request
target:查找JavaBean或java.util.Map对象
property:target指定的对象属性
类似:<%jsp:useBean id="" %>

删除变量:<c:remove var="variable" scope="page|application|session|request" />

捕捉异常:<c:catch [var="variable"]>
var:用来存储错误信息的变量

b.流程控制:
if判断:<c:if test="${value1==value2}" var="save_test_result" scope="page|application|session|request"/>
test:boolean类型,逻辑表达式结果
var:String类型,保存test结果,为"true"或"false"
scope:String类型,变量var的存储范围
eg:
<c:if test="${name == \"Hello\"}" >
   <c:out value="${name}">
<c:if>

swich判断:<c:choose>
它是<c:when>跟<c:otherwise>的父标签
eg:
<c:set var="flag" value="true"/>
  <c:choose>
     <c:when test="${flag == true}">
         <c:out value="${flag}" />
     </c:when>
     <c:otherwise>
         <c:out value="false" />
     </c:otherwise>
  </c:choose>

for循环:<c:forEach var="unable-EL" item="Collection" [varState="unable-EL"] [begin="begin-index"] end="end-index" [step="step-length"]/>
item:Collection对象
varState:变量的成员信息(eg.int i)
begin:(eg.int i = 0中的0)
end:(eg.i < 10中的10)
step:(eg.i++)
eg:
<% List<String> list = new ArrayList<String>();
   list.add(0,"Hello");
   list.add(1,"world");
   request.setAttribute("list",list);
%>
<c:forEach var="element" item="${list}" varState="status">
  <c:out value="${elment}">
</c:forEach>
<c:out value="list.index:${status.index}">
<c:out value="list.count:${status.count}">
<c:out value="list.first:${status.first}">
<c:out value="list.last:${status.last}">

利用StringToken迭代:
<c:forTokens item="String Tokens" delims="delimiters" [var="variableName"] [var states="unable-EL"] [begin="begin-index"] [end="end-index"] [step="step-length"]>BodyContent</c:forTokens>
item:String对象,多为正则。
eg:
<%! String str = "123-4567-890";%>
<c:forTokens item="str" var="s">
  <c:out value="${s}">
</c:forTokens>

c.URL操作
导包:
<c:import uri="${uri}" [content="${context}"] [var="varName"] [scope="page|application|session|request"] charEncoding="${charEncoding}" [varReader=""]>BodyContent</c:import>
context:不同web站点必须"/"开头
varReader:以Reader对象的形式存储文件中的内容。
类似<jsp:include>但不同的是它不但包括自身WEB应用程序的文件,还包括不同的web应用程序的文件。

参数:<c:param name="${name}" value="${param.name}">
name:参数名称。
value:对应参数的值。

<c:import url="www.iteye.com">
  <c:param name="name" value="yourname">
</c:import>
等价于:http://www.iteye.com?name=yourname

<c:url value="${value}" [context="${context}"] [var="varName"] [scope="application|request|session|page"] />
其中主题内容必须含<c:param>
eg:
<img src="<c:url value='www.iteye.com'><c:param name='pic' value='picName'/></c:url>"/>
<img src="www.iteye.com?pic=picName">

重定向:<c:redirect url="http://www.iteye.com/login.jsp">

你可能感兴趣的:(sql,jsp,Web,xml,正则表达式)