我试图将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>
答案 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上。