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

Posted

技术标签:

【中文标题】JSTL和表达式语言之间的确切区别和关系【英文标题】:Exact difference and relation between JSTL and Expression Language 【发布时间】:2013-03-28 17:08:08 【问题描述】:

阅读 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>

我知道&lt;c:set 是一个JSP 标签,$test 是表达式语言..

我的困惑是

    不能单独使用JSTL 吗?它总是需要EL 的支持吗?如果并非总是需要,在上述情况下如何处理?

    如何简单使用没有JSTL标签的Expression语言?

【问题讨论】:

EL 是一种操作服务器端内容的方法,无论是在 JSTL 标记中,还是以“普通”样式。如果在标签中使用,它可以用于获取数据,例如您的示例,或设置数据,例如&lt;h:inputText&gt; 这可能会有所帮助:***.com/questions/4812755/… 【参考方案1】:

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

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

$user.id

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

【讨论】:

以上是关于JSTL和表达式语言之间的确切区别和关系的主要内容,如果未能解决你的问题,请参考以下文章

JSTL标签与EL表达式之间的微妙关系

Struts标签Ognl表达式el表达式jstl标签库这四者之间的关系和各自作用

Struts标签Ognl表达式el表达式jstl标签库这四者之间的关系和各自作用

java web007——表达式语言JSTL标签库

EL(表达式语言)与JSTL(JSP标准标签库)

Java学习——JSTL标签与EL表达式之间的微妙关系