当前位置: 移动技术网 > IT编程>开发语言>Java > Java之JSTL的基础运用

Java之JSTL的基础运用

2020年07月26日  | 移动技术网IT编程  | 我要评论

jstl简介

JSTL(java Server Pages Tag Library),是jsp的标签库。用于简化jsp中的java脚本,因为EL能力有限,EL只能取出域对象中的参数,所以就有了JSTL,与EL相辅相成,共同完成页面输出。

JSTL的使用需要先导入jar包,然后使用taglib指令引入标签库。

jstl的jar包的导入

直接去Maven中央仓库下载jar包
链接: https://mvnrepository.com/
下载之后将jar包复制到WEB-INF下面(增加隐蔽性),鼠标右键该jar包,点击“Add as Library”,点击ok。再使用taglib指令导入标签库:<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

如果运行的时候控制台报如下错误,就说明jar包没有完全导入:在这里插入图片描述
我们继续点击IDEA右上角的图标,选中当前的项目,点击“Artifacts”,在圆圈的地方会出现一个“fix”按键,点击,选第一个,然后apply,即可解决该问题。具体操作如下:
在这里插入图片描述

if标签

使用方式:
1.

<c:if test="${}">   //{}里面为判断条件
   </c:if>
<c:if test="true">    //直接设置test的Boolean值,true/false
   </c:if>

这里面的c是前缀,我们可以在代码中设定。实例如下:
在这里插入图片描述图中红色圈中的c即为前缀,前缀不固定,自己随意设定。

choose标签

choose标签可以理解为一个多重if else
用法示例:

//用c:set标签代替脚本,向域对象中存值
<c:set var="month" value="8" scope="request"></c:set>

<c:choose>
    <c:when test="${month>=12&&month<=2}">
        <c:out value="winter"></c:out>
    </c:when>
    <c:when test="${month>=3&&month<=5}">
        spring
    </c:when>
    <c:when test="${month>=6&&month<=8}">
        <c:out value="summer"></c:out>
    </c:when>
    <c:when test="${month>=9&&month<=11}">
        autumn
    </c:when>
    <c:otherwise>月份数值错误</c:otherwise>
</c:choose>

同样,也可以用c:out标签代替out.write()来输出。在html中直接写也能展示出来。

foreach标签

1.普通for循环

以遍历为例,
用jstl实现遍历的示例:

<c:forEach begin="0" end="9" var="i" step="1">
    ${i}
</c:forEach>

begin(开始) end(结尾) var(变量)step(步长)
这个地方我们取值用的是${i}(即EL),那么 i 肯定是在域对象中,但是从代码中看,我们并没有将 i 存进域对象,所以在这里foreach默认会将var中的变量值存进pageContext域对象,这样我们才能直接取出 i 。

用Java实现遍历的示例:

<%--java-版--%>
<%
    for (int i=0;i<10;i++){
        System.out.println(i);
    }
%>

这个是在控制台进行输出。

2.增强for循环

这个我们对数组进行遍历

//Java版
<%
    int[] arr={1,3,5,7,9};
      //将arr数组存进域对象
    request.setAttribute("arr",arr);
%>

<c:forEach items="${arr}" var="a">
    ${a}
</c:forEach>

几个细节问题:
1.items属性:使用el从域对象中取出集合或数组。
2.foreach会遍历集合或数组,将遍历的每一个元素的值赋给var中的变量a。
3.var属性:将定义的变量a存进最小域对象pageContext中,因此后面才能通过${a}取出域对象中的参数值

关于jstl的分享就到这了,如有其他问题,还请各位大佬多多指正。

本文地址:https://blog.csdn.net/weixin_49379854/article/details/107564652

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网