将集合填充到JSP页面时出现404错误

时间:2011-05-05 17:37:23

标签: java jquery servlets

我试图将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>

       

1 个答案:

答案 0 :(得分:2)

然后网址是完全错误的。您在$.getJSON()

中使用了相对网址
$.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上。