【发布时间】:2016-02-20 16:49:01
【问题描述】:
我有以下jsp
...
<table id="table" class="sortable">
<thead>
<tr>
<td class="head">Дата Запроса</td>
<td class="head">Сумма Запроса</td>
<td class="head">Баланс Владельца</td>
<td class="head">Статус Запроса</td>
<td class="head">Email</td>
<td class="head">-----</td>
</tr>
</thead>
<tbody>
<c:forEach var="event" items="${events}">
<tr>
<td>
<jsp:useBean id="dateValue" class="java.util.Date"/>
<jsp:setProperty name="dateValue" property="time"
value="${event.timestamp}"/>
<fmt:formatDate value="${dateValue}"
pattern="MM/dd/yyyy HH:mm"/>
</td>
<td>${event.amount}</td>
<td>${event.sourceUser.userAccounts.iterator().next().currentAmount}</td>
<td>${event.status}</td>
<td>${event.sourceUser.email}</td>
<td><c:if test="${event.status != 'SUCCESS'}">
<input type="button" class="withDraw"
value="подтвердить вывод"/>
</c:if>
<div class="edit-holder adt" id="">
<div class="edit-box">
<div class="title">Подтверждение вывода средств владельцем</div>
<form action="/admin/confirmWithdrawRequest"
method="post">
<div>
<input type="hidden" value="${event.id}" name="eventId"/>
<label>Статус</label>
<select name="status">
<c:forEach items="${statuses}" var="status">
<option <c:if test="${status == event.status}">
selected="selected"
</c:if>
>${status}</option>
</c:forEach>
</select>
<div class="clear"/>
</div>
<div>
<label>Email</label>
<input type="text" class="with-draw-input" name="email"
value="${event.sourceUser.email}"
readonly/>
<div class="clear"/>
</div>
<div>
<label>Текущий баланс</label>
<input type="text" class="with-draw-input" name="balance"
value="${event.sourceUser.userAccounts.iterator().next().currentAmount}"
readonly/>
<div class="clear"/>
</div>
<div>
<label>Сумма запроса</label>
<input type="text" class="with-draw-input" name="email"
value="${event.amount}"
readonly/>
<div class="clear"/>
</div>
<div>
<label>Комментарий модератора</label>
<textarea class="moderationComment"
name="moderationComment">${event.moderationComment}</textarea>
<div class="clear"/>
</div>
<input type="submit" class="btn" value="сохранить"/>
<div class="clear"></div>
</form>
<div class="close"></div>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
...
我想像这样将最后一个td 内容提取到单独的jsp:
<tbody>
<c:forEach var="event" items="${events}">
<tr>
<td>
<jsp:useBean id="dateValue" class="java.util.Date"/>
<jsp:setProperty name="dateValue" property="time"
value="${event.timestamp}"/>
<fmt:formatDate value="${dateValue}"
pattern="dd.MM.yyyy HH:mm:ss"/>
</td>
<td>${event.amount}</td>
<td>${event.sourceUser.userAccounts.iterator().next().currentAmount}</td>
<td>${event.status}</td>
<td>${event.sourceUser.email}</td>
<td><jsp:include page="confirmWithDrawModal.jsp"/>
</td>
</tr>
</c:forEach>
</tbody>
和confirmWithDrawModal.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<c:if test="${event.status != 'SUCCESS'}">
<input type="button" class="withDraw"
value="подтвердить вывод"/>
</c:if>
<div class="edit-holder adt" id="">
<div class="edit-box">
<div class="title">Подтверждение вывода средств владельцем</div>
<form action="/admin/confirmWithdrawRequest"
method="post">
<div>
<input type="hidden" value="${event.id}" name="eventId"/>
<label>Статус</label>
<select name="status">
<c:forEach items="${statuses}" var="status">
<option <c:if test="${status == event.status}">
selected="selected"
</c:if>
>${status}</option>
</c:forEach>
</select>
<div class="clear"/>
</div>
<div>
<label>Email</label>
<input type="text" class="with-draw-input" name="email"
value="${event.sourceUser.email}"
readonly/>
<div class="clear"/>
</div>
<div>
<label>Текущий баланс</label>
<input type="text" class="with-draw-input" name="balance"
value="${event.sourceUser.userAccounts.iterator().next().currentAmount}"
readonly/>
<div class="clear"/>
</div>
<div>
<label>Сумма запроса</label>
<input type="text" class="with-draw-input" name="email"
value="${event.amount}"
readonly/>
<div class="clear"/>
</div>
<div>
<label>Комментарий модератора</label>
<textarea class="moderationComment"
name="moderationComment">${event.moderationComment}</textarea>
<div class="clear"/>
</div>
<input type="submit" class="btn" value="сохранить"/>
<div class="clear"></div>
</form>
<div class="close"></div>
</div>
</div>
在此重构之后,我看到以下结果:
如您所见,变量未呈现。
如何解决?
【问题讨论】:
-
@Stephen P 你认为 jsp:include 对我来说是错误的吗?
-
是的...
<%@include ...>是我认为您想要的形式。见this answer到Variables in jsp pages with "included" pages
标签: java jsp foreach jspinclude