jsp中标签文件的疑问

来源:互联网 发布:淘宝图片放大镜js代码 编辑:程序博客网 时间:2024/06/10 07:41

本文出自:http://wenwen.sogou.com/z/q67683050.htm


 提问:jsp中标签文件的疑问

下面这3行中
<%@ attribute name="items" rtexprvalue="true" required="true" %>
<%@ attribute name="even" fragment="true" required="true" %>
<%@ attribute name="odd" fragment="true" required="true" %>
attribute,fragment,required格式代表什么意思呢?

也顺便解释下这行的意思吧
varStatus="status"

下面是完整代码:
<%@ tag body-content="empty"%>
<%@ attribute name="items" rtexprvalue="true" required="true" %>
<%@ attribute name="even" fragment="true" required="true" %>
<%@ attribute name="odd" fragment="true" required="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jsp1/core" %>

<c:forEach items="${items}" varStatus="status">
<c:choose>
<c:when test="${items.count%2==0}">
<jsp:invoke fragment="event" />
</c:when>
<c:otherwise>
<jsp:invoke fragment="odd" />
</c:otherwise>
</c:choose>
</c:forEach>


满意答案:

这是jstl标签,也就是通常所说的jsp2.0写法,<%@ attribute name="even" fragment="true" required="true" %>这种标签写法是片断,就好像是一个摸版,除非代码调用这个地方,否则不会被执行,就好像你写的代码中的那样,具体意思是:如果${item.count%2==0}的话,jsp调用event这个片断,否则将会调用odd这个片断,varStatus的意思和var差不多,只是varStatus变量只会在c:foreach里面产生作用,而不能延续使用~


0 0
原创粉丝点击