我想定義一個自定義的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