接着上一篇继续写一些JSTL核心标签库的实现
1.多分支判断标签:<c:choose></c:choose>,<c:when></c:when><c:oherwise></c:otherwise>
结构:
<c:choose>
<c:when test="">
</c:when>
<c:when test="">
</c:when>
.......
<c:otherwise>
</c:otherwise>
</c:choose>
相当于if, else if,......,else
思路:choose标签只用一个操作那就是输出标签体同时增加一个boolean类型的属性bool,但这不是输入属性,是用来表示当前分支语句的状态的,when标签时先判断先同过getParent方法获得父标签,然后判断如果bool属性为false则在此之前没有符合条件的判断,则判断当前条件是否为真,为真则输出标签体,bool属性设为true,如果bool为true则说明之前已存在符合条件的判断,忽略当前标签.otherwise标签同理.
实现:
tld文件:
<tag> <name>choose</name> <tag-class>com.wjj.label.chooseLabel</tag-class> <body-content>scriptless</body-content&g

本文介绍了JSTL中的多分支判断标签`<c:choose>`、`<c:when>`和`<c:otherwise>`的使用和实现原理,它们类似于if...else...结构。同时讲解了循环标签的实现思路,针对Collection对象,如List和Map,将数据存入page域并通过EL表达式输出。详细阐述了标签体的处理逻辑及属性状态的管理。
最低0.47元/天 解锁文章
1284

被折叠的 条评论
为什么被折叠?



