【问题标题】:404 error while populating the collection onto JSP page将集合填充到 JSP 页面时出现 404 错误
【发布时间】:2011-05-05 17:37:22
【问题描述】:

我试图将集合(项目集合)从 servlet 填充到我的 jsp 页面..

在我的 servlet 代码中,我将项目存储在集合中:

String itemsJson = new Gson().toJson(items);
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(itemsJson);

在我的 jsp 页面中,我尝试将项目填充到 jquery 可调整大小的框中。代码如下:

$(document).ready(function() {
    $("#resizable").resizable();
    $.getJSON('resizable', function(itemsJson) {
        var $resizable = $('#resizable');
        $.each(itemsJson, function(index, itemcatalog) {
            $('<option>').text(itemcatalog.item).appendTo($resizable);
        });
    });
});

<div class="demo">  
<div id="resizable" class="ui-widget-content">
<h3 class="ui-widget-header">Item List</h3>
 <option></option>

【问题讨论】:

  • @Bozho- GET localhost:8015/Inventory/resizable 404 未找到
  • 请不要把整个问题改成不同的东西。这将使现有的答案完全无用。 404 已解决。 NPE 是一个单独的问题,应该在另一个问题中提出。 JSP/jQuery 代码则无关紧要。只有发生 NPE 和堆栈跟踪的 Java 代码是相关的。我已经回滚了编辑。

标签: java jquery servlets


【解决方案1】:

那么 URL 是完全错误的。您在 $.getJSON() 中使用了相对 URL

$.getJSON('resizable', function(itemsJson) {

假设这段代码被放置在一个由以下 URL 打开的 JSP 文件中

http://localhost:8080/context/pages/page.jsp

那么你需要确保 servlet 在

上可用
http://localhost:8080/context/pages/resizable

JavaScript/jQuery 会将相对 URL 映射到文档的基本 URL。


或者当 servlet 实际上在监听时

http://localhost:8080/context/resizable

(直接在浏览器地址栏中打开地址进行测试)

那么你需要将$.getJSON()的网址改成如下

$.getJSON('../resizable', function(itemsJson) {

或(域相关)

$.getJSON('/context/resizable', function(itemsJson) {

或(仅当它在 JSP 中时才有效)

$.getJSON('${pageContext.request.contextPath}/resizable', function(itemsJson) {

或将 JSP 文件移动到

http://localhost:8080/context/page.jsp

或者如果 URL 实际上是正确的,那么它只是意味着 servlet 启动失败。阅读异常/堆栈跟踪的服务器日志并相应地修复代码。或者,servlet 可能根本没有映射到 URL。

【讨论】:

  • @balusC-但可调整大小的是 div 的 id..我的 servlet 是 GetitemsServlet..我没有得到它..它在我头顶
  • 不,$.getJSON('resizable') 指向 servlet URL。它通过给定的 URL 从 servlet 获取 JSON。 div id 在$('#resizable') 中。它正在返回&lt;div id="resizable"&gt;。我建议休息一下,单独重做基本的 JSP/Servlet/jQuery 教程。这可能是一个很好的起点:stackoverflow.com/tags/servlets/info 和 stackoverflow.com/questions/4112686/…
  • 很抱歉,如果答案看起来过于复杂,但由于您提供的有关真实 URL 的细节很少,因此无法给出更具体的答案。如果您提供 JSP 页面和 JSON servlet 的真实完整 URL(与它们返回预期响应时浏览器地址栏中的 URL 完全相同),那么我们将能够告诉您正确的相对 URL在$.getJSON() 中使用的servlet。
  • @BalusC- jsp page:getItemList.jsp...Servlet:GetItemListServlet..得到响应时的url是:localhost:8015/Inventory/getItemList.jsp
  • 还有获得 JSON servlet 响应的 URL?是localhost:8015/Inventory/GetItemListServlet 吗?如果是这样,那么您需要将$.getJSON() URL 更改为'GetItemListServlet'。
猜你喜欢
  • 1970-01-01
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多