0

我是 jQuery 和 Servlet 的新手。在一个学校项目上工作,现在我被这个问题困住了。

我的 proj3.html 文件中左侧有一个导航栏,带有这样的锚标记。

  <ul class="nav nav-list">

          <li class="nav-header">Labels</li>
          <li><a href="" class="labels">Sony</a></li>
          <li><a href="" class="labels">Spinnin</a></li>
          <li><a href="" class="labels">BMG</a></li>
          <li><a href="" class="labels">Ultra</a></li>
      <li><a href="" class="labels">Universal</a></li>

          <li class="nav-header">Genere</li>
          <li><a href="" class="genere">Rock</a></li>
          <li><a href="" class="genere">Alternative Rock</a></li>
          <li><a href="" class="genere">Pop</a></li>
          <li><a href="" class="genere">EDM</a></li>
          <li><a href="" class="genere">Hip-Hop</a></li>
       </ul>

在Javascript里面我有这个

 $('a.labels').on('click',function(e){

        var url = "http://example.edu/servlet/SampleQuery";       
            $.get(url);
        e.preventDefault();
    }

}

在我的 servlet SampleQuery.java 中,我从 DB 中读取并转发到这样的 JSP

       RequestDispatcher dispatcher = null;
       dispatcher = request.getRequestDispatcher("/jsp/DisplayVendor.jsp"); 
   dispatcher.forward(request, response);

当我点击任何锚标记$.get时,我的 JSP 页面没有显示出来。奇怪的是,如果我检查 firebug 的网络流量,我会看到我的 AJAX 调用正在通过,我什至可以看到 DisplayVendor.jsp 页面作为响应。但它没有得到显示。

有人可以指出我是否犯了任何错误。

谢谢

4

1 回答 1

0

你打电话$.get(url),但不对响应做任何事情。将其更改为

$.get(url, function(data) {
    alert('here is the response data : ' + data);
});

显示您收到的内容。

例如,要使用 AJAX 调用返回的 HTML 更新 id 为“dynamicallyLoadedDiv”的 div 的内容,请使用

$.get(url, function(data) {
    $('#dynamicallyLoadedDiv').html(data);
});

或者干脆

$('#dynamicallyLoadedDiv').load(url);

阅读文档以获取更多信息。

请注意,如果您的目标是替换整个页面内容,我真的看不出发出 AJAX 请求的意义。在这种情况下使用简单的超链接。

于 2013-04-20T21:16:58.507 回答