本章记录JSP的jstl标签。
首先需要导两个jar包,jstl.jar和standard.jar。
①可以在菜鸟教程的官网下载:
http://tomcat.apache.org/taglibs/standard/
②也可以在自己电脑的tomcat里找到他们
找到之后把两个包复制到WebContent的WEB-INF的lib文件夹下,再build path即可
进入正题。
应用前需要写一句代码:
<%@ taglib uri = “http://java.sun.com/jsp/jstl/core” prefix = “c” %>
1.<c:out>
<c:out value = "hello jstl"></c:out>
相当于Java的system.out.println(“hello jstl”)
2.<c:if>
<c:if test = "${2>1}">
welcome
</c:if>
{}括号中的条件如果为true,则运行标签中的代码。
3.<c:choose>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:choose>
<c:when test = "${empty param.username}">
unKnown user.
</c:when>
<c:when test = "${param.username == 'itcast'}">
${param.username} is a manager.
</c:when>
<c:otherwise>
${param.username} is employee.
</c:otherwise>
</c:choose>
<br />
</body>
</html>
这里的param.username暂且不管,可以运行服务器之后在网址的最后面加上
?username=itcast
代码功能就是判断username的值来选择输出,类似switch语句。
运行结果:
①
unKnown user.
② (网址最后添加?username=itcast)
itcast is a manager.
③(?username=itcast1)
itcast1 is employee
4.<c:forEach>
<c:forEach var=“每个变量名字” items=“要迭代的list” varStatus=“每个对象的状态” begin=“循环从哪儿开始” end=“循环到哪儿结束” step=“循环的步长”>
循环要输出的东西
</c:forEach>
实践:
c_foreach1.jsp
用到String[]数组和Map集合
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String[] fruits = {"banana","orange","apple"};
%>
<c:forEach var = "name" items = "<%=fruits %>">
${name}<br />
</c:forEach>
<br />
<%
Map userMap = new HashMap();
userMap.put("jack","123");
userMap.put("marry","123");
userMap.put("jane","123");
%>
<c:forEach var = "map" items = "<%=userMap %>">
${map}<br />
</c:forEach>
</body>
</html>
结果:
banana
orange
apple
marry=123
jack=123
jane=123
用Map集合的时候需要导包,否则会出现红叉叉。
光标放到Map单词后,按ALT+/就可以导包
下面的List和ArrayList同理
c_foreach2.jsp
用到List列表和begin,end and step
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
List userList = new ArrayList();
userList.add("kate");
userList.add("marry");
userList.add("jane");
userList.add("john");
%>
<c:forEach var = "list" items = "<%=userList %>" begin = "1" end = "3" step = "2">
${list}<br />
</c:forEach>
</body>
</html>
结果:
marry
john