📜  JSTL | JSP 标准标签库(1)

📅  最后修改于: 2023-12-03 15:02:26.775000             🧑  作者: Mango

JSTL | JSP 标准标签库

JSP 标准标签库 (JSTL) 是一个集成标签库,它为 JSP 提供了许多有用的标签,这些标签能够大幅度减少在 JSP 页面中使用 Java 代码的数量。JSTL 包含了核心标签库和 SQL 标签库两种类型的标签,这些标签可以帮助程序员快速地开发出功能丰富的 JSP 页面。

核心标签库
c:forEach

该标签用于循环一个集合中的元素,并将集合中的元素依次赋值给指定的变量。示例代码如下:

<c:forEach items="${list}" var="item">
  <p>${item}</p>
</c:forEach>

上述代码展示了如何遍历一个名为 "list" 的 List 集合,并将集合中的元素一个个赋值给名为 "item" 的变量,同时输出每个元素的值。

c:if

该标签用于进行条件判断,根据条件的真假来输出指定的内容。示例代码如下:

<c:if test="${num > 0}">
  <p>${num} > 0</p>
</c:if>
<c:if test="${num < 0}">
  <p>${num} < 0</p>
</c:if>

上述代码展示了如何判断变量 "num" 的值是否大于 0 或小于 0,并输出相应的内容。

c:choose

该标签用于多条件判断,类似于 Java 中的 switch 语句。示例代码如下:

<c:choose>
  <c:when test="${num == 0}">
    <p>${num} = 0</p>
  </c:when>
  <c:when test="${num > 0}">
    <p>${num} > 0</p>
  </c:when>
  <c:otherwise>
    <p>${num} < 0</p>
  </c:otherwise>
</c:choose>

上述代码展示了如何根据变量 "num" 的值判断其是否等于 0,大于 0,或小于 0,并输出相应的内容。

c:set

该标签用于将一个值赋给一个变量。示例代码如下:

<c:set var="name" value="Tom"/>
<p>My name is ${name}.</p>

上述代码展示了如何将字符串 "Tom" 赋值给名为 "name" 的变量,并输出该变量的值。

SQL 标签库
sql:setDataSource

该标签用于设置数据库的连接参数,使后续的标签可以直接访问数据库。示例代码如下:

<sql:setDataSource var="db" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/testdb" user="root" password=""/>

上述代码展示了如何设置数据库连接参数,并将其保存在名为 "db" 的变量中。

sql:query

该标签用于执行 SQL 查询语句,并将查询结果保存在指定的变量中。示例代码如下:

<sql:query dataSource="${db}" var="result">
  SELECT * FROM user WHERE age > 18
</sql:query>
<c:forEach items="${result.rows}" var="row">
  <p>${row.name}, ${row.age}</p>
</c:forEach>

上述代码展示了如何执行一条查询语句,并将结果保存在名为 "result" 的变量中,然后遍历结果并输出每一行的数据。

sql:update

该标签用于执行 SQL 更新语句,即修改、删除、插入等操作。示例代码如下:

<sql:update dataSource="${db}">
  UPDATE user SET name=?, age=? WHERE id=?
  <sql:param value="Tom" />
  <sql:param value="20" />
  <sql:param value="1" />
</sql:update>

上述代码展示了如何执行一条更新语句,其中的参数通过 sql:param 标签传递。

总结

JSTL 提供了许多实用的标签库,使开发者可以更加方便地创建动态的 JSP 页面。其中的核心标签库提供了诸如循环、条件判断、变量赋值等基本功能,而 SQL 标签库则提供了访问数据库的通用功能。JSTL 是 JavaWeb 开发中一个非常重要的工具库,同时也是一个非常优秀的标准。