【发布时间】:2018-06-02 20:27:12
【问题描述】:
在我的 jsp 页面中,我有两个表单。一个表单操作发送到 save_product servlet,另一个发送到 save_images servlet。只有一个提交按钮。当首先点击提交按钮时,我想保存产品,然后想保存图片。
我使用 jQuery 和 Request.getRequestDispatcher(String).forward() 进行了尝试,但没有成功。
这是我的jsp:
<button type="submit" class="btn btn-default" id="formsave1">Save</button>
<div class=container>
<div class="panel">
<form action="../save_product" method="POST"><button type="submit" id="formsave2" ></button>
</div>
<div class="panel">
<form action="../save_images" method="POST" enctype="multipart/form-data">
<button type="submit" id="formsave3"></button>
</div>
</div>
产品保存 servlet:
req.getRequestDispatcher("save_images").forward(req, resp);
jQuery:
$(document).ready(function () {
$(formsave1).on("click", function (e) {
alert('CLICKED 1');
$('#formsave2').click();
alert('CLICKED 2');
});
【问题讨论】:
-
你不能这样转发请求。如果您想“转发”您需要使用
response.sendRedirect的请求。但是您将无法将其与 POST 一起使用,因为它不会保留参数...为什么不直接修复您的后端,这样您只需要调用 1 个 servlet? -
@JonathanLaliberte 这不是真的,您可以将请求转发到另一个 servlet,包括所有 POST 或 GET 参数。
-
您的代码似乎没有任何问题,或者给定的数据不足以提供答案。请记住,如果日期是通过 POST 发送的,
doPost()将在两个 servlet 中被调用。 -
谢谢你们俩。 req.getRequestDispatcher("save_images").forward(req, resp);是正确的。它访问 save_image servlet。
-
啊有趣。很高兴知道。感谢 Roshana 的更正。
标签: jquery html jsp servlets requestdispatcher