JSTL与表达语言之间的确切差异和关系

Sur*_*tta 20 java jsp jstl el java-ee

阅读问答后如何避免JSP文件中的Java代码?我停止使用scriptlet进行编码.

所以开始阅读JSTL,并怀疑我发现JSTL与EL有关系 .

但我没有得到它们之间的确切关系.

在这里,我从这里得到了代码

 <c:set var="test" value="JSTL Core Tags"></c:set>
 <c:out value="${test}"></c:out>
Run Code Online (Sandbox Code Playgroud)

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

我的困惑是

  1. 不会JSTL单独工作吗?它总是需要支持EL吗?如果不总是需要,在上述情况下如何?

  2. 如何在没有JSTL标签的情况下简单地使用Expression语言?

JB *_*zet 25

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

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

${user.id}
Run Code Online (Sandbox Code Playgroud)

这将写入用户bean的ID.如果您想要测试,循环,HTML转义,URL,日期数字格式等,您仍然需要使用JSTL.