【问题标题】:What is the difference between <% ... %> and <%! ... %> in jsp<% ... %> 和 <%! 有什么区别? ... %> 在 jsp 中
【发布时间】:2010-07-26 08:01:53
【问题描述】:

我正在向具有标题中提到的两个标签的页面添加更多功能。我注意到我在&lt;% ... %&gt; 中声明的变量不能在&lt;%! ... %&gt; 中使用,反之亦然。两者有什么区别,如何声明可以在两个标签中使用的变量

【问题讨论】:

    标签: java jsp


    【解决方案1】:

    &lt;% ... %&gt; 用于在 JSP 的主要 service() 方法中嵌入一些 java 代码。它在页面渲染期间执行。

    &lt;%! ... %&gt; 用于定义页面流外部 的代码,因此在主要service() 方法之外。通常,这用于定义将从 &lt;% ... %&gt; 块中调用的实用方法。

    不过,这两种方法现在都已过时。 JSP EL、JSTL 和标记类是做同样事情的首选方式。

    【讨论】:

    • 我只能补充说,自 jee6 以来,整个 jsp 现在已被弃用。 jsf - 是一种主视图技术。
    • hm,它真的被弃用了吗?我怀疑
    • @bozho:我猜你指的是评论,而不是答案? @skaffman 我支持非常不推荐使用 scriptlet 的概念,而 @foret JSP 可能始终适用于需要动作框架的情况,因为组件框架太耗资源了。
    • @foret:JSF 不是一种视图技术。 JSP 和 Facelets 都是。从 JSF 的角度来看,Facelets 确实是 JSP 的继承者。 @foret 和@Bozho:JSP 仅从 JSF 2.0 的角度被弃用,而不是 Java EE。这在Facelets chapter of Java EE 6 tutorial 中被逐字引用。 @skaffman:太棒了,JSP 标签中的 8 票能得到如此简单的答案?你是怎么做到的? :o
    • 我不确定 scriplets 是否已被弃用,但它们不是最佳实践,因为在 JSP 文件中嵌入 Java 代码会违背表示和业务逻辑的分离。
    猜你喜欢
    • 2011-12-13
    • 2011-06-02
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 2011-01-12
    • 2011-03-18
    • 2011-04-12
    • 1970-01-01
    相关资源
    最近更新 更多