JSP JSTL

Posted chy18883701161

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP JSTL相关的知识,希望对你有一定的参考价值。

 

JSTL是Sun给JSP制定的一套标准标签库,JS代表JSP,TL即Tag Library。

JSTL是一套很古老的标签库了,很多东西都不再适用,这里只介绍几个常用的标签。

 

 

使用JSTL需下载添加以下4个jar包

技术图片

 

 

 

 

<c:out>标签   输出一段文本或表达式的值

 <c:out value="hello" />
  
  <c:out value=‘<%=request.getAttribute("name") %>‘ default="默认值" />
  <c:out value="$requestScope.name" default="默认值" />
  
  <c:out value="">默认值</c:out>

value指定要输出的内容,可以使用输出表达式、EL表达式。

JSTL中的标签相当于html元素,属性值不能直接写表达式,比如value="requestScope.name"这是获取不到值的,会直接作为纯文本输出。

可以指定默认值,当域中没有指定的变量时,会输出默认值。默认值可以写成属性形式,也可以写在元素体中。

 

 

可以指定escapeXml属性,是否避免特殊字符,默认值是true,会自动对特殊字符进行转义。

<c:out value="<h2>hello</h2>" />
  <c:out value="<h2>hello</h2>" escapeXml="false"/>

第一句代码不会解析<h2>标签,原样输出<h2>hello</h2>。第二句输出hello,会显示出<h2>标签的效果。

为true或缺省时,会作为纯文本输出,不会解析里面的value中的特殊字符。

为fasle时,会解析value中的特殊字符,显示出效果。

 

 

 

 

<c:if>标签   条件判断,相当于if

 <%
    request.setAttribute("score",80);
  %>

  <c:if test=‘$requestScope.score>=60‘>及格</c:if>

test设置条件(表达式),常用EL表达式,当表达式的值为true时,输出元素体的内容,否则输出空串。

 

可以直接在表达式中指出变量所在的域,也可以这样:

<c:if test=‘$score>=60‘ var="score" scope="request">及格</c:if>

用var指定表达式中的变量,scope指定变量所在的域。缺省scope时,默认为page。

 

 

 

 

<c:choose>标签   多个条件判断,相当于if-else,if-elseif-else

<%
    request.setAttribute("score",80);
  %>

  <c:choose>
    <c:when test="$requestScope.score>=80"></c:when>
    <c:when test="$requestScope.score>=60">及格</c:when>
    <c:otherwise>不及格</c:otherwise>
  </c:choose>

test设置条件,常用EL表达式,表达式的值为true时,显示|输出标签体的内容。

 

 

 

 

<c:forEach>标签   遍历集合、数组

<%
    String[] arr="张三","李四","王五";
  %>

  <c:forEach var="name" items="<%=arr %>">
    <p>$pageScope.name</p>
  </c:forEach>

var指定临时变量,代表一项,items指定集合、数组,常用输出表达式、EL表达式来指定,不能直接指定,比如items="arr"这是不行的。

此外可用begin、end、step属性限制范围。

元素体即循环体,常用EL表达式,临时变量是在page域中的,可缺省pageScope,不能直接写临时变量,比如<p>name</p>这是不行的。

可配合html标签使用。

 

 

 

 

<c:redirect>标签   重定向

  <c:redirect url="/login.jsp" />

马上重定向到url指定的页面,相当于 response.sendRedirect("/login.jsp"); 

 

 

 

 

<c:set>标签   在某个域中放入|设置一个参数

<c:set var="name" value="chy" scope="request" />

<%=request.getAttribute("name") %>

相当于 request.setAttribute("name","chy"); 。

 

以上是关于JSP JSTL的主要内容,如果未能解决你的问题,请参考以下文章

JSTL ---[什么是JSTL,JSTL标签]

JSP常用标签——JSTL标签和EL表达式

EL表达式 与 JSTL标准标签库

JavaWeb详解(第六篇)之JSTL标签简介

pom.xml错误怎么解决

java web007——表达式语言JSTL标签库