本文已参与「新人创作礼」活动,一起开启掘金创作之路。
JSTL(JavaServer Pages Standard Tag Library)Jsp标准标签库
Jsp标签是Sun公司定义的一套标准,由Apache足迹基于这套标准开发的一套标签库后与转给Sun公司,被称为JSTL,成为了JavaEE5.0的核心.
JSTL的使用:1、将JSTL标签对应的jar文件拷贝到/WEB-INF/lib目录下;2、使用taglib指令导入要使用的Jsp标签<%@taglib uri=" " prefix=" "%>uri:Jsp标签的命名空间,prefix:命名空间的前缀
<c:out>标签:用于输出一段文本到浏览器中
<c:set>标签:用于吧某一个对象存在指定的域范围内,或者设置Web域中的java.util.Map的属性对象或JavaBean类型的属性对象的属性
<c:if>标签:可以构造简单的"if-then"结构的条件表达式
<c:choose>标签:用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用,使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似"if-else if-else"的复杂条件判断;可以有多个<c:when>
<c:forEach>标签:用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中的内容
测试:
<body>
<!-- c:out 浏览器上显示内容
value:要输出的值 default:value为null所输出的替代值
escapeXml:是否解析html true不解析 false解析 -->
<c:out value="shm"></c:out>
<%
String string = null;
pageContext.setAttribute("name", string);
%>
<c:out value="${name}" default="123" escapeXml="false"></c:out>
<c:out value="<h1>ncx</h1>" default="hhh" escapeXml="false"></c:out>
<!-- c:set 设置某域中某个变量值
var:变量名 value:变量值 scope:域 -->
<%
pageContext.setAttribute("name", "zhangsan");
%>
<c:set var="username" value="lisi" scope="session"></c:set>
${sessionScope.username}<hr>
${name}<hr>
<!-- c:set 设置某个对象的属性值
target:指定对象 property:指定对象的属性名 value:设置值 -->
<%
User user = new User("hh");
pageContext.setAttribute("user", user);
%>
<c:set target="${user}" property="name" value="wangwu"></c:set>
${user.name}<hr>
<!-- if 判断tag
test判断条件是布尔值 相当于if(condition)-->
<c:if test="${user.name eq 'wangwu'}">
<h1>登录成功</h1>
</c:if>
<!-- choose
when test 类似if elseif
otherwise 类似else
可以有多个when test -->
<%
int grade = 70;
pageContext.setAttribute("grade", grade);
%>
<c:choose>
<c:when test="${grade<60}">
<p>回家等在挨揍吧</p>
</c:when>
<c:when test="${grade>60 and grade<80}">
<p>表现不错</p>
</c:when>
<c:otherwise>
<p>奖励个娃娃</p>
</c:otherwise>
</c:choose>
<hr>
<!-- foreach for(String str:list)
items:要遍历的集合,通过EL表达式获取
var:获取集合中元素,对应的变量名字 str
step:步 i++
varStatus:var的状态
count:编号 index:索引值 first last -->
<%
List<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
pageContext.setAttribute("list", list);
%>
<c:forEach items="${list}" var="str" step="1" varStatus="status">
<p>${status.count} ${str}</p>
</c:forEach>
</body>