JSTL和表达式语言之间的确切区别和关系是什么?

23

在阅读了如何避免JSP文件中的Java代码?的问答后,我停止使用脚本片段进行编码。

于是开始阅读JSTL,并且发现JSTL与EL有关系。

但是我没有找到它们之间的确切关系。

这里我从这里获取了代码。

 <c:set var="test" value="JSTL Core Tags"></c:set>
 <c:out value="${test}"></c:out>

我知道<c:set>是一个JSP标签,而${test}是表达式语言。

我的疑惑是:

  1. 仅使用JSTL是否足够?它是否总是需要EL的支持?如果不总是需要,请问在上述情况下如何操作?

  2. 如何简单地使用表达式语言而不需要使用JSTL标签?


EL是一种操作服务器端内容的方式,无论是在JSTL标签中还是以“普通”样式。如果在标签内使用,它可以用于获取数据,就像您的示例中一样,或者设置数据,例如<h:inputText> - skuntsel
4
这可能会有所帮助:https://dev59.com/Km445IYBdhLWcg3wia2V - BalusC
1个回答

30

最初,EL的设计是用于JSTL标签的属性中,以及您可能想要使用或自己编写的任何其他自定义标签中。JSP规范的后续版本允许在JSP中直接使用EL,但这并不意味着JSTL已经不再有用。在JSP中直接使用EL只能将某些值写入响应中,例如:

${user.id}

这会写入用户bean的ID。如果你想使用测试、循环、HTML转义、URL、日期和数字格式等功能,你仍需要使用JSTL。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接