1.Uncaught TypeError: Cannot read property 'options' of null
此问题是我在研究js操作给下拉框(select)赋值时遇到的。
解决办法参考:https://blog.csdn.net/Vi_error/article/details/70161531
我的问题:之前我将script代码段放在了<head>标签里或放在了<select>标签前都报Uncaught TypeError: Cannot read property 'options' of null这个错误。原因是代码没有获取到Id为“department”的元素,那么就是null,null是没有办法set属性的
解决办法:1.确保在设置属性之前,department这个元素已经被加载完成,因为浏览器加载是从上到下依次执行,所以在执行script代码时并没有加载到select标签。
2.使用window.load或者afterrender方法来确保页面加载完再对页面进行操作即可。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>js操作给下拉框(select)赋值</title>
</head>
<body>
为下拉框赋值<br>
<select id="department" onchange="" style="width:150px;">
</select>
<script type="text/javascript">
var dataList = [
"好看", "好吃", "好用"
];
var departmentSelect = document.getElementById("department");
//departmentSelect.options.length = 0;/**清空下拉框的值*/
if ((dataList != null) && (dataList.length != 0)) {
for (var i = 0; i < dataList.length; i++) {
var op = new Option();
op.text = dataList[i];
op.value = dataList[i];
departmentSelect.options.add(op);
}
}
</script>
</body>
</html>
解决办法二:使用onload
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>js操作给下拉框(select)赋值</title>
<script type="text/javascript">
window.onload = function setSelectName() {
var dataList = [
"好看", "好吃", "好用"
];
var departmentSelect = document.getElementById("department");
//departmentSelect.options.length = 0;/**清空下拉框的值*/
if ((dataList != null) && (dataList.length != 0)) {
for (var i = 0; i < dataList.length; i++) {
var op = new Option();
op.text = dataList[i];
op.value = dataList[i];
departmentSelect.options.add(op);
}
}
}
</script>
</head>
<body>
为下拉框赋值<br>
<select id="department" onchange="" style="width:150px;">
</select>
</body>
</html>
2.关于controller层使用LIst集合作形参,要在形参前加@RequestBody
参考:https://blog.csdn.net/sweetgirl520/article/details/79127223
关于存储过程
正确: