【发布时间】:2016-04-01 10:32:12
【问题描述】:
我有一个 jsp (items.jsp),它迭代产品列表并显示结果产品。在它的脚本中,我迭代产品列表如下:
<jsp:useBean id="items" scope="page" class="com.certus.controllers.ItemPage"/>
<%
List<Product> products = null;
//check if the parameter "sort" available or not
if (request.getParameter("sort") != null) {
System.out.print("Three parameter method");
products = items.filterProducts(Integer.parseInt(request.getParameter("sub")),
Integer.parseInt(request.getParameter("cat")),request.getParameter("sort"));
} else {
System.out.print("Two parameter method");
products = items.filterProducts(Integer.parseInt(request.getParameter("sub")),
Integer.parseInt(request.getParameter("cat")));
}
for (Product p : products) {
%>
some html content here....
到目前为止,一切正常。在同一个 jsp 中,我有一个选择框,我已经介绍了它来根据客户的需要对产品进行排序。一旦我从选择框中选择了一个项目,它就会向 servlet 发送一个请求,并且该 ajax 请求也没有任何问题。 (使用 System.out.println() 进行测试,并从 glass-fish 服务器获得所需的结果。)
从那里开始,我遇到了一个问题。这是我的 servlet:
String category = request.getParameter("category");
String sub = request.getParameter("sub_category");
String sort = request.getParameter("sort");
//Tried with both methods but no luck
// response.sendRedirect("items.jsp?cat=" + category + "&sub="+
//sub + "&sort=" + sort);
RequestDispatcher RequetsDispatcherObj = request.getRequestDispatcher("items.jsp?cat=" + category + "&sub=" + sub + "&sort=" + sort);
RequetsDispatcherObj.forward(request, response);
如您所见,我正在尝试使用包含在 url(排序)中的另一个参数重定向到 items.jsp,以调用 items.jsp 中的三个参数化方法。
欢迎所有建议找出我犯了错误的地方。如果您需要我的 ajax 调用,它是:
<script type="text/javascript">
$(document).on("change", "#sortCombo", function () {
$.ajax({
url: 'sortProducts',
data: {category: $('#category').val(), sub_category: $('#sub_category').val(), sort: $('#sortCombo').val()},
type: 'get',
cache: false,
success: function (data) {
// alert(data);
// $('#somediv').text(responseText);
},
error: function () {
alert('error');
}
}
);
});
</script>
sortProducts 是 servlet 名称。还需要告诉您使用排序参数在 url 上写入并刷新页面工作正常,并给出所需的结果,显示按名称、价格等级等排序的产品。 谢谢。
更新
如果我可以通过写在 URL 上来调用方法(三参数一) 为什么 ajax 响应不对
response.sendRedirect("items.jsp?cat=" + category + "&sub=" + sub + "&sort=" + sort);做同样的事情???
【问题讨论】:
-
只有重定向的响应是servlet响应,如果使用ajax则不需要重定向。
标签: java ajax jsp servlets xmlhttprequest