我正在开发一个JSP页面。我使用Spring框架,JSTL和Jquery。我混合了一些js代码和JSTL代码。这是代码:
这是我的Spring控制器:
Contract contract = services.getContractInfo(contractNumber);
contract.addCustomer(customer);
model.addAttribute("contract", contract);
这是我的Java脚本:
<script language="javascript">
$(document).ready(function(){
var values = new Array();
<c:forEach var="customer" items="${contract.customers}" varStatus="status">
values.push("${customer.name}");
</c:forEach>
alert(" VALUES => "+values[0]);
....
});
</script>
警告向我显示"VALUES => undefined".
我不明白。发生了什么事?
答案 0 :(得分:2)
您提供的此代码应该完美无缺。唯一可能性值[0] =未定义是由于$ {contract.customers}可能为空。以下代码应该有助于查找集合是否为空
<script language="javascript">
$(function(){
var values = new Array();
<c:if test="${empty contract.customers}">
values.push("No customers Found");
</c:if>
<c:forEach var="customer" items="${contract.customers}" varStatus="status">
values.push("${customer.name}");
</c:forEach>
alert(" VALUES => "+values[0]);
});
</script>
答案 1 :(得分:0)
我认为您不需要准备好文件(在这种特定情况下)。还尝试设置脚本类型而不是语言。我假设您在Contract类中有一个返回Collection的getCustomers()方法。
e.g。
<script type="text/javascript">
var values = [];
<c:forEach var="customer" items="${contract.customers}" varStatus="status">
values.push("${customer.name}");
</c:forEach>
alert(" VALUES => " + values[0]);
</script>
答案 2 :(得分:0)
您无法在脚本函数中使用JSTL。尝试将值放在脚本函数之外
<c:forEach var="customer" items="${contract.customers}" varStatus="status">
values.push("${customer.name}");
</c:forEach>
只需使用它来显示为其分配一些文本框或表格的值。