我有一个HomePage.jsp,其中包含另一个jsp,其中包含Reporting.jsp,
<%@ include ...%>
我希望只要在HomePage.jsp上单击特定链接,就会使此页面从servlet加载数据。
我尝试使用jQuery AJAX方法来POST到servlet,但是,现在问题是如何将数据传递给我包含的jsp?
包含的JSP使用JSTL从请求中读取数据并相应地呈现jsp。 (我知道还有其他方法,比如返回JSON / XML文件servlet,然后使用javascript或jquery来解析它,但有没有办法为JSTL的方式处理它)
在HomePage.jsp上,我的AJAX函数看起来像这样
$("#ReportingLink_id").on("click", function(){
$.ajax({
type: "POST",
url: "MaintainUser",
data: "",
success: function(result){
},
error: function(){
}
})
在Reporting.jsp上,我的JSTL看起来像这样
<tbody>
<c:forEach var="tempProject" items="${projectInfo}">
<tr>
<td><span class="ClickableID"><u><c:out value="${tempProject.getProjectID()}"></c:out></u></span></td>
<td><c:out value="${tempProject.getProjectName()}"></c:out></td>
<td><c:out value="${tempProject.getClientName()}"></c:out></td>
<td><c:out value="${tempProject.getAssignedProjectGroupName()}"></c:out></td>
<td><c:out value="${tempProject.getQuotedDuration()}"></c:out></td>
<td><c:out value="${tempProject.getForecastBudget()}"></c:out></td>
</tr>
</c:forEach>
</tbody>
在我的servlet上,我试过了,
request.setAttribute("projectInfo", projectInfo);
rd = request.getRequestDispatcher("/JSPs/SubJSPs/ProjectReporting.jsp");
rd.forward(request, response);
我可以确认servlet已收到来自AJAX事件的POST请求,但在转发请求后,Reporting.jsp上没有显示任何内容。
答案 0 :(得分:0)
尝试使用表达式语言设置范围${requestScope.projectInfo}
:
<c:forEach var="tempProject" items="${requestScope.projectInfo}">
<tr>
<td><span class="ClickableID"><u><c:out value="${tempProject.getProjectID()}"></c:out></u></span></td>
<td><c:out value="${tempProject.getProjectName()}"></c:out></td>
<td><c:out value="${tempProject.getClientName()}"></c:out></td>
<td><c:out value="${tempProject.getAssignedProjectGroupName()}"></c:out></td>
<td><c:out value="${tempProject.getQuotedDuration()}"></c:out></td>
<td><c:out value="${tempProject.getForecastBudget()}"></c:out></td>
</tr>
</c:forEach>