CodeGym/Java 课程/模块 3/标签库简介

标签库简介

可用

7.1 c:if, c:forEach

每个人都喜欢使用标签而不是 Java 代码的代码,因此他们决定扩大范围。但编程并不局限于创建对象和读取它们的属性。您需要调用对象的方法,使用数据库和其他服务。该怎么办?

您只需要将每个 Java 语句表示为一个标记。是if,将是<if>,是for,将是,<for>等等。好吧好吧,开玩笑,不是那样的。嗯,不可能是人们真的决定这样做。但不,也许吧!

程序员允许在代码中添加任何标签。原则上,没有什么可担心的——JSP 是一个可扩展的标准。但他们走得更远,发布了 JSP 标准标签库 - JSTL。带有它的页面如下所示:

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>

<html>
   <head>
       <title> JSTL Example</title>
   </head>

   <body>
        <c:set var = "salary" scope = "session" value = "${2000*5}"/>
        <c:if test = "${ salary > 2000}">
            <p>My salary is: <c:out value = "${salary}"/><p>
        </c:if>
   </body>
</html>

你在以后的项目中很可能会遇到这样的代码,我会给出一些解释。

7.2 JSTL函数

JSTL 函数分为 5 类:

  • 主要标签;
  • 格式化标签;
  • SQL 标签;
  • XML标签;
  • 调用函数。

我不会列出所有的,但我会列出最受欢迎的。让我们从主要标签开始:

1个 <c:out> 输出指定的表达式 - 相当于 <%= %>
2个 <c:set> 将表达式的结果写入变量
3个 <c:remove> 删除变量
4个 <c:catch> 捕获异常
5个 <c:if> if 的类比
6个 <c:choose> 模拟开关
7 <c:when> 与 choose 一起使用
8个 <c:otherwise> 与 choose 一起使用
9 <c:import> 允许您在代码中包含内容(相当于导入指令)
10 <c:forEach> 对于每个循环
十一 <c:param> 允许您设置导入选项
12 <c:redirect> 重定向
13 <c:url> 创建带参数的 URL

我将仅举一个例子并以此结束。原则上,经过一定的技巧是完全有可能阅读这样的代码的。但是不推荐写。

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>

<html>
   <head>
      <title> Each Tag Example&</title>
   </head>

   <body>
       <c:forEach var = "i" begin = "1" end = "5">
            Item <c:out value = "${i}"/><p>
       </c:forEach>
   </body>
</html>

想一想,我们把Java代码写成标签的形式,然后JSP解析器就会把这些标签转成Java代码。这个世界上有什么地方出了问题。

顺便说一下,您可以编写自己的标签库。我什至曾经在他们所在的项目中工作过。很棒的体验。一旦对库进行任何更改,整个 jsp 就会立即中断。

你想要什么?编译器不会跟踪此类更改。只有在查看生成的 HTML 页面时才能直观地找到它们。如果这些是在非平凡情况下出现的一些罕见场景……上帝保佑后端开发和静态类型!

评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论