JSTL(Java Server pages Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
引入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
* uri:对应的标签库文件中uri标签,通过该值可以找到对应的标签库[c.tld,包含多个标签]的文件
* prefix:表示使用前缀名(别名)
<c:if通过c找到uri对应的文件中的c.tld文件,通过if在c中找到if标签
c:out
<c:out value="${username}" default="默认值" escapeXml="true|false"></c:out>
主要用来显示数据内容
* value 需要显示出来的值
* default 如果value属性值为空,则显示default的值,默认显示的值
* escapeXml 默认值为true 是否转换特殊字符,true转换,false不转
c:set
主要用来将变量存储至jsp范围中或者JavaBean的属性中
var存在的情况 :将值存入jsp范围中
<c:set value="北京" var="city" scope="request" ></c:set>
* value: 放置要被存储的值
* var :存储的变量名称
* scope:放置数据的作用域 (page|request|session|application)写法固定
* 上面等价于pageContext.seAttribute("city","北京",PageContext.REQUESTSCOPE)
可以从request域中取得变量名为city的值
var不存在的情况:给javaBean中的某个属性设置值
<% Person person=new Person(); person.setName("yxkong"); pageContext.setAttribute("p",person); %>
<c:out value="${pageScope.p.name}"></c:out> 赋值前取到的值是:yxkong
<c:set value="鱼翔空" target="${pageScope.p}" property="name" ></c:set>
* value:要被储存的值,支持el表达式
* target:表示一个目标对象,通常对应的是一个javaBean
* property:表示javaBean中的属性
<c:out value="${pageScope.p.name}"></c:out>赋值后取到的值是:鱼翔空
c:if
<c:if test="${num>6}">输出的内容</c:if>
test:如果表达式的结果为true,则执行标签体中的内容
c:chose
<c:chose> <c:when test="${num<6}">输出语句</c:when> <c:when test="${num<9}"></c:when> <c:otherwise>不符合上面的条件的结果</c:otherwise> </c:chose>
* c:when 1个或多个 when中test的表达式为true输出
* c:otherwise 0或1个 当所有的c:when不满足执行
<c:choose > <c:when test="${! empty lists}">//判断集合不为null <c:forEach items="${lists}" var="emp">//遍历集合 emp.id; </c:forEach> </c:when> <c:otherwise> 没有您要查询的数据 </c:otherwise> </c:choose>
c:forEach
循环控制,遍历集合(collection set map 数组)中的成员循环游览一遍
<c:forEach items="${ListPersons}" var="person" begin="1" end="5" step="2"> ${person.name}-----${person.age} </c:forEach>
* items 被迭代的集合,支持el,集合中存放的是javaBean
* var 用来存放现在指到的成语
* begin 开始输出的索引
* end 结束位置,索引
* steb 遍历的步长
遍历List<map<String,String>>结构
<c:forEach items="${listMap}" var="maps" varStatus="x"> <c:forEach items="${maps}" var="map"> <option value="${map.key}">${map.value}</option> </c:forEach> </c:forEach>
c:url
<c:url ></c:url>
主要产生一个url
* value 设置路径
* var 保存地址的名称
* context 相同容器下,其他web站点必须以"/"开头
* scope var的作用域 不加默认为page作用域
访问当前目录下的
<c:url value="/test.jsp" var="url"></c:url>
访问当前容器下其他的web应用
<c:url value="/test_jsp/base.jsp" var="url" context="/"/>
访问外部资源
<c:url value="http://www.yxkong.com" var="url"/>
传递参数
用此标签可以对中文进行自动编码
<c:url value="/test.jsp" var="url" scope="pageScope"> <c:param name="id" value="1"> <c:param name="name" value="中文"> </c:url>
<a href="${url}">yxkong</a>
文章评论