jquery - 如何将 servlet 中的数据加载到 jsp 中(包含在另一个 jsp 中)
问题描述
我有一个 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 上没有显示任何内容。
解决方案
尝试${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>
推荐阅读
- php - WooCommerce 按大小搜索字段
- python - python的gameobjects安装
- javascript - 无法读取未定义的属性(读取“纹理”)
- python - gensim.models.HdpModel实现层次狄利克雷过程时无法获取主题编号
- javascript - history.push() 不能在同一页面上使用 react
- vue.js - 如何在我的 Vue js 应用程序中从 PrimeVue 构建“步骤”组件?
- c++ - 找不到 -lsfml-graphics-d - Code::Blocks 20.03
- python - 如何使用python解析苹果音乐
- python - 如何从 Scrapy 响应中提取值
- django - 'ManyRelatedManager' 对象没有属性 - Django