为什么JSTL只有c:if 而没有elseif、else?
当需要判断多个条件的时候,只能写多个c:if 或者使用c:choose。
虽然struts有else if 和 else标签,不过看着就跟多个c:if 没什么2区别,方法如下:
<s:if test="">
one
</s:if>
<s:elseif test="">
two
</s:elseif>
<s:else>
three
</s:else>
下面是本人借鉴网上方法实现的if else if else。先看看使用代码:
<g:if test="">
one
<g:elseif test="" />
two
<g:else />
three
</g:if>
这样代码结构个人觉得更加清晰简单,类似freemarker的if elseif。
要实现上面说的if elseif,需要继承BodyTagSupport,利用BodyTagSupport的bodyContent的来实现该功能,这里不具体介绍如何实现jsp tag。直接贴出所有代码,有兴趣的自己看看。