JSP之jstl标签库

5 篇文章 0 订阅

jsp标签的分类

1)内置标签(动作标签):不需要在jsp页面导入标签.

2)jstl标签:需要在jsp页面导入标签,通过taglib指令.

3)自定义标签:开发者自行定义,也需要在jsp页面导入相应自定义标签

jstl标签库

jstl标签库(Java standard tag libray),Java标准标签库,SUN公司设计了超多标签供我们使用,从而减少jsp页面中的jsp脚本.

分类

1)核心标签库(c标签库),开发者使用最多,很重要.

2)国际化标签库(fmt标签)

3)EL函数库(fn函数库)

4)xml标签库(x标签)

5)sql标签库(sql标签库)

使用jstl标签库步骤

1)导入jstl支持的jar包(也就是标签背后隐藏的Java代码).其实现在使用JavaEE5.0或者JavaEE6.0,创建项目时都会自动导入jstl标签库对应的jar包.

2)通过taglib指令导入标签库,需要什么标签就导入什么标签.

<%@taglib uri="tld文件的uri名称" prefix="前缀" %>
3)最后就是使用标签了.

核心标签库(c标签库)

常用的c标签及作用

 <%--使用C标签 
   	 保存数据
    <c:set></c:set>
        获取数据
    <c:out value=""></c:out>
        单条件判断
    <c:if test=""></c:if>
       多条件判断
    <c:choose></c:choose>
    <c:when test=""></c:when>
    <c:otherwise></c:otherwise>
        循环数据
    <c:forEach></c:forEach>
    <c:forTokens items="" delims=""></c:forTokens>
     重定向
     <c:redirect></c:redirect>
--%>
	

使用C标签前奏

导入C标签库

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
uri和prefix的写法参照Java EE 5 Libraries-->jstl-1.2.jar-->META-INF-->c.tld文件里面的这两行代码:

 <short-name>c</short-name>
 <uri>http://java.sun.com/jsp/jstl/core</uri>
使用C标签
1)set-->保存数据

       <%--set标签:保存数据到域中(默认数据保存到page域中) --%>
	<c:set var="name" value="bighuan" scope="request"></c:set>
	EL表达式取值:${requestScope.name }
        <br/>
2)out-->获取数据

<%--
	out标签:从域中获取数据 
	default:当value里的值为null,使用default里的默认值
	escapeXml:是否对value的内容进行转义,默认转义;为true,value转义原样输出,比如输出"<h4>标题</h4>",而为false时,不对value
	内容进行转义,输出"标题"
--%>
       <%
        String age=null;
        pageContext.setAttribute("age", age);
    %>
    ${age }<br/>
    out标签取值:<c:out value="${age }" default="20"></c:out><br/>
    <c:out value="${age }" default="<h4>标题</h4>" escapeXml="false"></c:out>
3)if-->单条件判断(没有else效果)

<%--if标签:单条件判断 --%>
	<c:if test="${empty age }">
			条件成立!
	</c:if>
结果为:条件成立!

4)多条件判断(choose--when--otherwise)

<%--多条件判断 :choose+when+otherwise,三个一起使用实现if else效果--%>
	<c:set var="score" value="60"></c:set>
	<c:choose>
		<c:when test="${score>=90 && score <=100 }">
			优秀
		</c:when>
		<c:when test="${score>=80 && score <90 }">
			良好
		</c:when>
		<c:when test="${score>=70 && score <80 }">
			一般
		</c:when>
		<c:when test="${score>=60 && score <70 }">
			及格
		</c:when>
		<c:otherwise>
			不及格
		</c:otherwise>
	</c:choose>
结果:良好

5)forEach遍历

存数据,Person是一个拥有name和id成员变量的一个标准javabean,使用记得导入该bean所在的包

<%		
	
			//以后数据最好放servlet中写,这里是为了方便
   			Person person=new Person("bighuan",100);
   			//将对象存入域对象中
   			pageContext.setAttribute("person", person);
   			
   			List<Person> list=new ArrayList();
   			list.add(person);
   			list.add(new Person("erqiu",20));
   			list.add(new Person("tiedan",21));
   			pageContext.setAttribute("list", list);
   			
   			Map<String ,Person> map=new HashMap<String , Person>();
   			map.put("001", person);
   			map.put("002",new Person("erqiu",21));
   			map.put("008",new Person("ergou",29));
   			map.put("004",new Person("ertie",24));
   			pageContext.setAttribute("map", map);
   		%>
使用forEach:

                <%--
   			forEach遍历
   			begin:从哪个元素开始遍历,默认从0开始
   			end:到哪个元素结束,默认到最后
   			step:步长,默认为1
   			items:需要遍历的数据(集合,map等)
   			var:每个元素的名称:当前正在遍历元素的状态对象,(count属性:当前位置开始,也就是1开始)
   			varStatus:
   		 --%>
                //集合
               <c:forEach begin="0" end="2" step="1" items="${list }" var="p" varStatus="varSta">
   			序号:${varSta.count}--名字:${p.name }--id:${p.id }<br/>
   		</c:forEach>
                //map
                 <c:forEach items="${map }" var="entry">
              ${entry.key }--${entry.value.name }--${entry.value.id }<br/>
          </c:forEach>

遍历结果:

序号:1--名字:bighuan--id:100
序号:2--名字:erqiu--id:20
序号:3--名字:tiedan--id:21


008--ergou--29
004--ertie--24
001--bighuan--100
002--erqiu--21

6)forTokens遍历

               <%
   			String str="java-php-python-语文-艺术";
   			pageContext.setAttribute("str", str);
   		%>
   		<%--jsp中切割方法 --%>
   		<c:forTokens items="${str }" delims="-" var="s">
   			${s }<br/>
   		</c:forTokens>
结果:

java
php
python
语文
艺术
7)redirect重定向

<%--重定向:redirect --%>
<c:redirect url="http://www.baidu.com"></c:redirect>

总结

核心标签库的常用几个标签作用及使用示例都在博客了...

下一篇就是jsp自定义标签了,坚持吧!多写一些博客是对知识的一种巩固,一种消化方式!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值