【发布时间】:2014-11-23 11:23:42
【问题描述】:
我正在使用 Spring MVC 开发应用程序。在我的表单中,我希望在用户插入邮政编码时自动填写城市名称字段。因此,我将 .csv 文件解析为对象 ZipCity(对于每个邮政编码一个对象),并使用这些对象创建数组列表 zipCityListCh。我尝试使用 JavaScript 遍历 .jsp 页面上的列表(以匹配邮政编码),但迭代不起作用。
<script type="text/javascript">
var zip = document.getElementById("field-zipCode");
zip.addEventListener("blur", zipToCity, false);
function zipToCity() {
var field = document.getElementById("field-city");
for (var i = 0; i < 5; i++) {
if ("${zipCityAsArray[i].zip==zip.value}") {
field.value = "${zipCityAsArray[i].city}";
}
}
return true;
}
</script>
不过,如果我插入一个数字而不是变量 i,它确实有效:
<script type="text/javascript">
var zip = document.getElementById("field-zipCode");
zip.addEventListener("blur", zipToCity, false);
function zipToCity() {
var field = document.getElementById("field-city");
for (var i = 0; i < 5; i++) {
if ("${zipCityAsArray[1].zip==zip.value}") {
field.value = "${zipCityAsArray[1].city}";
}
}
return true;
}
</script>
似乎变量i 未被识别为数字。这是控制器代码:
private ZipCityList zipCityListCh = new ZipCityList("src/main/resources/files/plz.csv");
private ArrayList<ZipCity> zipCityAsArray = zipCityListCh.getZipCityAsArrayList();
@RequestMapping(value = "/createAd", method = RequestMethod.GET)
public ModelAndView createAd(){
ModelAndView model = new ModelAndView("create-ad");
model.addObject("zipCityAsArray",zipCityAsArray );
model.addObject("adForm", new AdForm());
return model;
}
为什么第一个 sn-p 不起作用?
【问题讨论】:
-
您正在混合服务器和客户端评估。您的
zipCityAsArray在var i在客户端可见之前绑定在控制器中。但是服务器端视图是评估绑定模型属性的地方 - 而且 i 不可见。
标签: java javascript jsp spring-mvc el