141-JSTL入门

44 篇文章 0 订阅
20 篇文章 0 订阅




JSTL入门

JSTL
JavaServer Pages Standard Tag Library
jsp标准标签库

是一个不断完善的开放源代码的JSP标签库,
是由apache的jakarta小组来维护的。
JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,
如tomcat 4.x。在JSP 2.0中也是作为标准支持的

JSTL是apache对EL表达式的扩展
也就是说JSTL依赖EL

JSTL一共包含四大标签库
1.core 核心
2.fmt
3.sql
4.xml


如何导入JSTL的core标准库
我们这样
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

prefix="c"是指定标签库的前缀
这个签注可以随便给值
但是大家一般使用core标签库的时候,都会写c

uri="http://java.sun.com/jstl/core"
这个是指定标签库的url,不一定是真实存在的网址
但是这样可以让jsp找到标签库的描述文件



常用的标签有:
1.out和set
2.remove
3.url
4.if
5.choose
6.forEach


<c:out value="aaa" /> 	输出字符串

举个例子
我们加入taglib

打开jstl官方网站
下载jar包
一共有
taglibs-standard-compat-1.2.5.jar
taglibs-standard-impl-1.2.5.jar
taglibs-standard-jstlel-1.2.5.jar
taglibs-standard-spec-1.2.5.jar
四个
全部下载吧就


然后写jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<c:out value="aaa" />

</body>
</html>


然后我们打开网页,
看到了aaa字符串
成功



<remove>标签
var:变量名
scope:如果不给出scope,表示删除
所有域中的该名称的变量,
如果指定了域,那么只删除该域的变量


<url>标签
value:指定一个路径,会在路径前面自动添加项目名
比如
<c:url value="/index.jsp" />
这样就会输出 /aaa/bbb/index.jsp

还可以添加参数,用一个子标签
<c:url value="/index.jsp">
	<c:param name="username" value="Alice" />
</c:url>

我们之前的传统写法是
${pageContext.request.contextPath}/MainServlet
现在
<c:url value="/MainServlet" />


 
然后if标签
if标签的test属性必须是一个boolean类型的值
如果test的值为true,那么执行if标签的内容
否则就不执行

<c:set var="a" value="hello" />
<c:if test="${not empty abc}" >
	<c:out value="${abc}">
</c:if>




choose标签
choose标签对应java中的if/else if/else结构
when标签的test为true的时候
会执行这个when的内容
当所有when标签的test都为false的时候
才会执行otherwise标签的内容

<c:set var="score" value="${param.score}" />
<c:choose>
	<c:when test="${score>90}>A</c:when>
	<c:when test="${score>80}>B</c:when>
	<c:when test="${score>70}>C</c:when>
	<c:otherwise>E</c:otherwise>
</c:choose>




forEach标签
forEach就是循环标签,有多种使用方式
1.使用循环变量,指定开始和结束值
2.循环遍历集合,类似for(Object obj:list)

例子
<c:forEach var="i" begin="1" end="10">
	${i}
</c:forEach>
看一下就差不多明白了
定义i,从1开始,到10结束
取出i的值


<%
  Strng[] strs={"1","2","3"};
%>

<c:forEach items="${strs}" var="str">
	${str}
</c:forEach>




forEach的循环状态
可以使用status来创建循环状态变量
1.count int类型 已遍历的个数
2.index int类型 当前元素的下标
3.first boolean 是否为第一个元素
4.last boolean  是否为最后一个元素
5.current Object 表示当前项目


<c:forEach items="${list}" var="ele" varStatus="vs" >
	${vs.index}
	${vs.count}	
	${vs.first}
	${vs.last}	 
	${vs.current}
</c:forEach>



 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值