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

时间:2013-04-06 07:30:05

标签: java jsp java-ee jstl el

阅读Q& A How to avoid Java code in JSP files?后,我停止使用scriptlet进行编码。

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

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

我从here

获取了代码
 <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标签的情况下简单地使用表达式语言?

1 个答案:

答案 0 :(得分:24)

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

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

${user.id}

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