servlet实操之jsp标签、jstl标签,el标签
JSP标签、JSTL标签、EL表达式
导包
<!-- JSTL表达式依赖-->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!-- standard标签库-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
EL表达式:${}
-
获取数据
-
执行运算
-
获取web开发的常用对象
jsp标签
XML 标签<%--<jsp:include page="jsp4.jsp"></jsp:include>--%>
<jsp:forward page="jsp4.jsp">
<jsp:param name="name" value="shi"/>
<jsp:param name="age" value="25"/>
</jsp:forward>
JSTL表达式
JSTL标签库是为了弥补HTML的不足,它有许多的自定义标签,可以供我们使用;标签的功能和java代码一样;
核心标签(掌握部分即可)
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
JSTL标签库使用步骤
-
引入对应的taglib
-
使用其中的方法(在tomcat中也要引入JSTL包)
<body> <%--if测试--%> <form action="jstl01.jsp" method="get"> <%-- el表达式获取表单中的数据--%> <input type="text" name="username" value="${param.username}"> <input type="submit" value="提交"> </form> <%--Java方式--%> <% if (request.getParameter("username").equals("3")){ out.println("3 is true"); }else { out.println("3 is false"); } %> <hr> <%--jstl方式--%> <c:if test="${param.username == '2'}" var="is2" scope="page"> <c:out value="2欢迎你"></c:out> </c:if> <c:out value="is2是${is2}"></c:out> <c:if test="${param.username == '1'}" var="is1" scope="page"> <%--<jsp:include page="jsp4.jsp"></jsp:include>--%> <jsp:forward page="jsp4.jsp"> <jsp:param name="name" value="shi"/> <jsp:param name="age" value="25"/> </jsp:forward> </c:if> <%--保存值--%> <hr> <c:set var="num" value="${param.username}"></c:set> <%--选择结构--%> <c:choose> <c:when test="${num == 4}"> 4 is true </c:when> </c:choose> <hr> <%--循环--%> <% ArrayList<String> pps = new ArrayList<>(); pps.add(0,"张三"); pps.add(1,"李四"); pps.add(2,"王五"); request.setAttribute("pp",pps); %> <c:forEach var="p" items="${pp}"> <br> <c:out value="${p}"></c:out> </c:forEach> <%--练一练 jstl --%> <% ArrayList<Integer> nums = new ArrayList<>(); Random random = new Random(); for (int i = 0; i < 10; i++) { nums.add(i, random.nextInt(100)); } request.setAttribute("nums",nums); %> <hr> <c:out value="直接输出${nums.toString()}"></c:out> <hr>循环输出 <c:forEach begin="0" end="${nums.size()-1}" step="1" var="n" items="${nums}"> <c:out value="${n}"></c:out> </c:forEach> </body>