欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java之JSTL的基础运用

程序员文章站 2022-07-02 09:00:06
Java之JSTL的基础运用jstl简介jstl的jar包的导入if标签choose标签foreach标签1.普通for循环2.增强for循环jstl简介JSTL(java Server Pages Tag Library),是jsp的标签库。用于简化jsp中的java脚本,因为EL能力有限,EL只能取出域对象中的参数,所以就有了JSTL,与EL相辅相成,共同完成页面输出。JSTL的使用需要先导入jar包,然后使用taglib指令引入标签库。jstl的jar包的导入直接去Maven*仓库下载链...

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包没有完全导入:Java之JSTL的基础运用
我们继续点击IDEA右上角的图标,选中当前的项目,点击“Artifacts”,在圆圈的地方会出现一个“fix”按键,点击,选第一个,然后apply,即可解决该问题。具体操作如下:
Java之JSTL的基础运用

if标签

使用方式:
1.

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

这里面的c是前缀,我们可以在代码中设定。实例如下:
Java之JSTL的基础运用图中红色圈中的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

相关标签: java jstl