代码之家  ›  专栏  ›  技术社区  ›  Koray Tugay

表达式语言函数和自定义标记之间有什么区别?

  •  0
  • Koray Tugay  · 技术社区  · 10 年前

    为什么我要使用自定义标记而不是el函数?比较它们的优点/缺点是什么?

    2 回复  |  直到 10 年前
        1
  •  3
  •   Anmol    10 年前

    最初,EL被设计用于JSTL标记的属性,以及您可能想要使用或自己编写的任何其他自定义标记。

    JSP规范的更高版本允许在JSP中直接使用EL,但这并不意味着JSTL不再有用。可以在JSP中直接使用EL做的唯一一件事就是向响应写入一些值,例如

    ${user.id} 它将写入用户bean的ID。如果您想要测试、循环、HTML转义、URL、日期和数字格式等,您仍然需要使用JSTL。 EL本身不太有用!您可以将EL与自定义标记一起使用,以帮助简化代码,特别是对于非java程序员!在这里了解EL在自定义标签中的使用: http://www.java-samples.com/showtutorial.php?tutorialid=551

        2
  •  0
  •   Koray Tugay    10 年前

    我还可以添加以下信息:

    JSP标记对JSP页面是隐式的。它们不需要任何依赖关系。一个例子是

    <jsp:useBean ....
    

    现在,.tld文件(称为标记库目录)带有更多标记。一个是JSTL,Java Standart标记库。它定义了:Java Standart标签和函数库。

    尽管函数库是在标记库中定义的,但它们实际上不是标记,而是表达式语言函数。它们只能用于EL表达式。JSTL函数库(通常与fn命名空间一起使用)不能在EL表达式之外使用。

    Java Standart标记库还定义了Standart标签。一个例子是

    <c:out ...