jstl 使用

扫码查看

1、需要导入:

 1)jstl.jar

   2)standard.jar

引入:jsp相应的核心库:<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

其中preifix表示是什么标签。 url表示引用什么标签。会报错:org.apache.jasper.JasperException: /action/demo7.jsp (line: 15, column: 0) According to TLD or attribute directive in tag file, attribute test does not accept any expressions

需要更改为:http://java.sun.com/jstl/core_rt 即可解决。

格式:<c:if  test="el表达式(${xx})"> </c:if>

没有else判断,如果需要重新在写一个。

但是需要注意:引用http://java.sun.com/jstl/core

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<c:if test="${2>4}">></c:if>
<c:if test="${4>2}">></c:if>
</body>
</html>

2、forEach标签:

格式:<c:foreach items="el表达式(${xx}})var 输出变量 varstatus:输出状态值比如:count 输出多少个值 current:当前输出值>${x} </c:foreach>

 <%@ page import="java.util.*" %>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
List<String> list=new LinkedList<>();
list.add("ok");
list.add("oop");
request.setAttribute("list",list);
Map<String,String> map=new HashMap<>();
map.put("oop","java");
map.put("func","python");
request.setAttribute("map",map);
%>
<%--格式:<c:foreach items="el表达式(${xx}})var 输出变量 varstatus:输出状态值比如:count 输出多少个值 current:当前输出值>
${x} </c:foreach>}"--%>
<c:forEach items="${list}" var="n" varStatus="status">${n} ${status.count}<br></c:forEach>
<c:forEach items="${map}" var="k" >
${k.value} ${k.key}
</c:forEach>
</body>
</html>

3:c:set  c:choose   c:when c:otherwise

c:set:相当于pagecontext.setAttriute()如果scope不设置默认是当前page域

c:choose c:when c:otherwise:是一对,类似if else

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<c:set var="lan" value="" scope="request"/><!--相当于pagecontext.setAttriute()如果scope不设置默认是当前page域-->
<!-- c:choose c:when c:otherwise是一对,类似if else -->-->
<c:choose>
<c:when test="${lan==2}">ok</c:when>
<c:otherwise>其他</c:otherwise>
</c:choose> </body>
</html>

4;函数库使用。

导入:taglibs-standard-impl-1.2.5.jar  相当于(相当于之前的jstl.jar,属于接口定义类)

  taglibs-standard-spec-1.2.5.jar (相当于之前的standard.jar,属于实现类)

之前的jstl.jar和standar.jar已经合并到tomcat下,并更名:taglib。下载地址:http://tomcat.apache.org/download-taglibs.cgi

http://www.bubuko.com/infodetail-1077023.html  该问有详细介绍。

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${fn:toUpperCase("oop")}
${fn}
</body>
</html>

其中需要注意 fn不是标签,是函数。不要写 <c:fn,其他方法如下。

jstl 使用-LMLPHP

05-11 19:57
查看更多