JSTL与表达式语言的确切区别与联系



看完Q&A如何避免JSP文件中出现Java代码?我不再使用scriptlet编写代码。

所以开始阅读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标记的属性以及您可能想要使用或编写的任何其他自定义标记中使用。

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

${user.id}

,它将写入用户bean的ID。如果你想要测试、循环、HTML转义、url、日期和数字格式等等,你仍然需要使用JSTL。

最新更新