我想定义一个自定义的JSP标签,它产生一个交替行背景颜色的HTML表格。因此,根据表的行索引设置CSS类“odd”和“even”。自定义JSP标记文件<%@ variable ..>不起作用?
没有JSP标记的示例工作正常,问题是:以下定制标记示例中出现了什么问题?我如何通过两个自定义标签传递变量“rowIndex”?
参考http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html没有帮助。
感谢
示例JSP页面的作品:
<c:set var="rowIndex" value="1"/>
<table class="datatable">
<tbody>
<tr class="${(rowIndex %2 == 0) ? 'odd' : 'even'}"><c:set var="rowIndex" value="${rowIndex+1}"/>
<td width="200px"><bean:message key='myKey' /></td>
<td>todoValue</td>
</tr>
<tr class=${(rowIndex %2 == 0) ? 'odd' : 'even'}><c:set var="rowIndex" value="${rowIndex+1}"/>
<td><bean:message key='myKey' /></td>
<td>todoValue</td>
</tr>
</tbody>
</table>
与自定义标签示例JSP页面无法正常工作:
JSP页面
<%@taglib tagdir="/WEB-INF/tags" prefix="myApp"%>
....
<myApp:keyValueDataTable>
<myApp:keyValueDataTableRow />
<myApp:keyValueDataTableRow />
<myApp:keyValueDataTableRow />
</myApp:keyValueDataTable>
dataTable.tag
<%@ include file='/tiles/taglibs.inc'%>
<%@tag description="Description" pageEncoding="UTF-8"%>
<%@ variable name-given="rowIndex" %>
<c:set var="rowIndex" value="1" />
<table class="datatable">
<tbody>
<jsp:doBody/>
</tbody>
</table>
tableRow.tag
<%@ include file='/tiles/taglibs.inc'%>
<%@tag description="Description" pageEncoding="UTF-8"%>
<%@ variable name-given="rowIndex" %>
<tr class="${(rowIndex %2 == 0) ? 'odd' : 'even'}">
<c:set var="rowIndex" value="${rowIndex+1}" />
<td width="200px"><c:out value="Index=${rowIndex}"></c:out> <bean:message key='myKey' /></td>
<td>todoValue</td>
</tr>
您的意思是将“<%@ taglib tagdir =”/ WEB-INF/tags“prefix =”myApp“%> ”替换为“<%@ taglib prefix =”utils“uri =”http:// www .example.com的/ TLD/utils的 “%>”?这不起作用,因为它是在/ WEB-INF/tags文件中定义的。 – CodeFan42