java - JSP 自定义标签 : Is it possible to have a more than start/close tags?

标签 java jsp coding-style django-templates custom-tag

在使用了 Django 模板语言之后,我真的很怀念能够做这样的事情:

{% if condition %}
    <!-- snip -->
{% else %}
    <!-- snip -->
{% endif %}

当我使用 JSP 时,我被困在做这样的事情:

<logic:equal name="something" value="example">
    <!-- snip -->
</logic:equal>
<logic:notEqual name="something" value="example">
    <!-- snip -->
</logic:notEqual>

或:

<% if (condition) { %>
   <!-- snip -->
<% } else { %>
   <!-- snip -->
<% } %>

是否可以编写支持 elseelse if 的自定义标签,而不是简单地为每个检查设置一对标签?

如果不可能,“首选”样式是什么?小脚本还是多标签对?在我的组织中,大多数人似乎都不喜欢 scriptlet,但我还没有真正听到一个很好的理由说明为什么我列出的简单条件语句如此糟糕。

最佳答案

XML 中的标签成对出现,一个打开一个关闭。 if then else 结尾的三个元素不适合打开和关闭格式。唯一的另一种方法是使用选择标签,如下所示:

<c:choose>
  <c:when test="${bean.value == 2}">
    <p>True</p>
  </c:when>
  <c:otherwise>
    <p>False</p>
  </c:otherwise>
</c:choose>

这是在 jSTL 中编写 if then else 结构的常用方法。

关于java - JSP 自定义标签 : Is it possible to have a more than start/close tags?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/948033/

相关文章:

java - 在 Java 中为 onClick 函数分配快捷键

java - OpenGL:是否可以环绕顶点缓冲区?

java - Arraylist和Vector的负载因子?

java - 我可以使用 mime 类型 application/msword 将页码添加到动态生成的文档中吗?

java - 如何以平台无关的方式启动 Jetty 并打开浏览器

java - 将 servlet 值传递到 <div>

php - 如何在 PHPStorm 中保持 Blade 语法的缩进?

php - 最佳实践 : Where to place required files

java - 哪种类型的花括号编码风格更适合 Java 程序员?

java - 我可以使用 <T Implements Comparable> 还是仅使用 <Comparable>