将Java列表返回到jQuery对象中
基本上,我有一个由按钮实例化的Ajax请求,它被传递到我的控制器,然后控制器返回一个对象列表。我最初想,是否可以通过将返回的ajax对象加载到JSTL forEach循环中来实现这一点,但我认为,经过一些研究之后,这是不可能实现的。 这是我的ajax请求,它根据一个值加载瞄准:将Java列表返回到jQuery对象中,java,javascript,jquery,ajax,spring-mvc,Java,Javascript,Jquery,Ajax,Spring Mvc,基本上,我有一个由按钮实例化的Ajax请求,它被传递到我的控制器,然后控制器返回一个对象列表。我最初想,是否可以通过将返回的ajax对象加载到JSTL forEach循环中来实现这一点,但我认为,经过一些研究之后,这是不可能实现的。 这是我的ajax请求,它根据一个值加载瞄准: //edit the sighting based on the username value $(this).on("click", ".edit_sighting", function(){
//edit the sighting based on the username value
$(this).on("click", ".edit_sighting", function(){
$username = +$(".edit_sighting").val();
$.get("${pageContext.request.contextPath}/getSighting/" + username, function(sightings){
// load returned object somewhere
});
});
这是我的控制器,它处理ajax请求并响应返回的对象“观察”列表:
@RequestMapping("/getSighting/{username}")
public @ResponseBody List<Sighting> getSighting(Model model, @PathVariable String username) {
List<Sighting> sightings = sightingsService.getSightings(username);
model.addAttribute("sightings", sightings);
return sightings;
}
@RequestMapping(“/getsight/{username}”)
public@ResponseBody List getsight(模型模型,@PathVariable字符串用户名){
ListSightings=sightingsService.getSightings(用户名);
model.addAttribute(“目击”,目击);
返回目击;
}
基本上,我希望将返回的对象加载到for-each循环或显示对象字段的内容中。例如:类似的事情。
每个循环的我的时间:
<c:forEach var="sighting" items="${sightings }">
<c:out value="sighting.name"/> <!-- load some sighting value -->
</c:forEach>
所以本质上,我试图实现的是,当一个按钮被实例化时,将多个或一个“观察”加载到一个模态类型的东西中 对
ajax
请求的响应返回给客户端,客户端无法访问服务器端机制,如JSTL
。代码应该在客户端使用Javascript/jQuery来显示新的DOM元素
因此,如果您的页面上有以下HTML:
<ul id="sightings"></ul>
回调将如下所示:
$(this).on("click", ".edit_sighting", function(){
$username = +$(".edit_sighting").val();
$.get("${pageContext.request.contextPath}/getSighting/" + username, function(sightings){
var output = "";
for(var i = 0; i < sightings.length; i++){
output =+ "<li>" + sightings[i].name + "<\/li>";
}
$("#sightings").append(output);
});
});
$(this).on(“单击“,”.edit_sighting”,函数(){
$username=+$(“.edit_sighting”).val();
$.get(“${pageContext.request.contextPath}/getSighting/”+用户名,函数(sighting){
var输出=”;
对于(变量i=0;i”+观测[i]。名称+”;
}
$(“#目击”)。追加(输出);
});
});
这将构建一个包含HTML的
字符串
,该HTML在每次看到时都有一个li
。然后将HTML作为#sightings ul
的子项附加到DOM中。对ajax
请求的响应返回给客户端,客户端无法访问服务器端机制,如JSTL
。代码应该在客户端使用Javascript/jQuery来显示新的DOM元素
因此,如果您的页面上有以下HTML:
<ul id="sightings"></ul>
回调将如下所示:
$(this).on("click", ".edit_sighting", function(){
$username = +$(".edit_sighting").val();
$.get("${pageContext.request.contextPath}/getSighting/" + username, function(sightings){
var output = "";
for(var i = 0; i < sightings.length; i++){
output =+ "<li>" + sightings[i].name + "<\/li>";
}
$("#sightings").append(output);
});
});
$(this).on(“单击“,”.edit_sighting”,函数(){
$username=+$(“.edit_sighting”).val();
$.get(“${pageContext.request.contextPath}/getSighting/”+用户名,函数(sighting){
var输出=”;
对于(变量i=0;i”+观测[i]。名称+”;
}
$(“#目击”)。追加(输出);
});
});
这将构建一个包含HTML的
字符串
,该HTML在每次看到时都有一个li
。然后将HTML作为#sightings ul
的子项附加到DOM中。对ajax
请求的响应返回给客户端,客户端无法访问服务器端机制,如JSTL
。代码应该在客户端使用Javascript/jQuery来显示新的DOM元素
因此,如果您的页面上有以下HTML:
<ul id="sightings"></ul>
回调将如下所示:
$(this).on("click", ".edit_sighting", function(){
$username = +$(".edit_sighting").val();
$.get("${pageContext.request.contextPath}/getSighting/" + username, function(sightings){
var output = "";
for(var i = 0; i < sightings.length; i++){
output =+ "<li>" + sightings[i].name + "<\/li>";
}
$("#sightings").append(output);
});
});
$(this).on(“单击“,”.edit_sighting”,函数(){
$username=+$(“.edit_sighting”).val();
$.get(“${pageContext.request.contextPath}/getSighting/”+用户名,函数(sighting){
var输出=”;
对于(变量i=0;i”+观测[i]。名称+”;
}
$(“#目击”)。追加(输出);
});
});
这将构建一个包含HTML的
字符串
,该HTML在每次看到时都有一个li
。然后将HTML作为#sightings ul
的子项附加到DOM中。对ajax
请求的响应返回给客户端,客户端无法访问服务器端机制,如JSTL
。代码应该在客户端使用Javascript/jQuery来显示新的DOM元素
因此,如果您的页面上有以下HTML:
<ul id="sightings"></ul>
回调将如下所示:
$(this).on("click", ".edit_sighting", function(){
$username = +$(".edit_sighting").val();
$.get("${pageContext.request.contextPath}/getSighting/" + username, function(sightings){
var output = "";
for(var i = 0; i < sightings.length; i++){
output =+ "<li>" + sightings[i].name + "<\/li>";
}
$("#sightings").append(output);
});
});
$(this).on(“单击“,”.edit_sighting”,函数(){
$username=+$(“.edit_sighting”).val();
$.get(“${pageContext.request.contextPath}/getSighting/”+用户名,函数(sighting){
var输出=”;
对于(变量i=0;i”+观测[i]。名称+”;
}
$(“#目击”)。追加(输出);
});
});
这将构建一个包含HTML的
字符串
,该HTML在每次看到时都有一个li
。然后,HTML作为#sightings ul
的子项附加到DOM中。您不能为此使用JSTL,因为JSTL是在页面发送到客户端之前在服务器上执行的。您可以在服务器上呈现HTML并返回HTML文档(而不是JSON)。因此,解决方案是定义一个JSP视图,该视图使用JSTL呈现列表,并将AJAX请求更改为接受HTML
另一个解决方案是添加一个基于JavaScript的模板引擎,并在客户端进行模板渲染
或者使用jQuery手动执行。如果你有
<ul id="sightings"></ul>
那你可以
var sightings = $('#sightings');
sightings.empty();
$.each(sightings, function(index, e){
var li = $('<li>');
li.text(e);
sightings.append(li);
});
var观测=$(“#观测”);
目击。空();
$。每个(目击,功能(索引,e){
var li=$(“”);
li.案文(e);
目击。附加(李);
});
您不能为此使用JSTL,因为JSTL是在页面发送到客户端之前在服务器上执行的。您可以在服务器上呈现HTML并返回HTML文档(而不是JSON)。因此,解决方案是d