如何从列表中获取每个元素在javascript中的mvc控制器
How to get each element from list on spring mvc controller inside javascript
我正在使用Spring MVC。在控制器中,我从模型中获取列表对象,并将此列表传递给视图。我将循环索引传递给javascript函数。这是可以的,但现在我想通过javascript内的索引获得每个对象的值。我该怎么做呢?这是我的控制器类:
@RequestMapping(method = RequestMethod.GET)
public Model handleRequest(HttpServletRequest request,
HttpServletResponse response,
@RequestParam(required = false, value = "q") String query) throws Exception {
Model model = new ExtendedModelMap();
String orderItem = request.getParameter("order_item");
List<Long> itemsIdList = new ArrayList<Long>();
List<OrderRequest> orderRequestList = getItemToppingCount(orderItem,itemsIdList);
model.addAttribute("itemsSelected", orderRequestList);
return model;
}
这是我的JSP:
<script>
function remove_confirm_order(index){
alert(index); // OK
// Get value of first object in list
var str1 = '${itemsSelected[0].name}';
// When adding this line, I can't show anything from JSP
var str2 = '${itemsSelected['+index+'].name}';
alert(str1);
}
</script>
<c:forEach var="item" items="${itemsSelected}" varStatus="loop">
<a href="#" onclick="remove_confirm_order('${loop.index}');" />
</c:forEach>
您可以在下面的代码片段中实现相同的引用:
<script>
function remove_confirm_order(index, item){
alert(index); // OK
alert(item); //OrderRequest
var orderRequest = item;
// Now extract value from item(instance of OrderRequest), example, orderRequest.getValue(index);
// Get value of first object in list
var str1 = '${itemsSelected[0].name}';
// When adding this line, I can't show anything from JSP
var str2 = '${itemsSelected['+index+'].name}';
alert(str1);
}
</script>
<c:forEach var="item" items="${itemsSelected}" varStatus="loop">
<a href="#" onclick="remove_confirm_order('${loop.index}', ${item});" />
</c:forEach>
更好的是从JavaScript
向控制器发出AJAX
调用,获得响应并做任何您想做的事情。
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
function callHandleRequest() {
$.ajax({
url : '/url/to/your/controller',
success : function(result) {
console.log(result);
}
});
}
</script>
你可以这样做。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<script>
var data = [];
<c:forEach var="spring_data" items="${data_from_spring}">
data.push(spring_data);
</forEach>
console.log(data);
</script>
你在javascript中创建一个数组。然后在脚本标记中使用jsp标记,您可以向数组中填充数据。记得在顶部
相关文章:
- 如何访问数组中的数组元素(JavaScript)
- 如何找到从中调用函数的元素(Javascript)
- 另一个元素JAVAscript中的元素位置
- 隐藏元素:Javascript属性和CSS样式之间的区别
- 如何比较数组中的元素(javascript)
- 使用一个函数来不同的元素 JavaScript
- 我需要从数组中获取一些元素 - JavaScript
- 元素 JavaScript 的读取宽度
- 识别数组的最后一个元素 - javascript
- 你如何使 Math.random 数组中的每一个第 9 个元素都是同一个元素?[JavaScript]
- 即时创建 Asp.Net 元素 Javascript
- 在提交表单上动态更改输入元素 javascript
- Kendo UI Grid 获取当前元素 javascript 的 ID
- 在我的 chrome 网上商店应用程序中禁用检查元素/JavaScript 控制台
- Canvas 元素 + Javascript 在 Chrome 和 Firefox 中工作,而不是在 Internet
- 对于在循环中不打印所有元素 - Javascript
- 选择元素 |Javascript vs Jquery.
- 无法删除 DOM 元素(JavaScript,CreateJS)
- 单击元素>JavaScript输出文档.activeElement VS.事件目标
- 当用户在文本框中输入数字时,将动态获得数组元素javascript或PHP