写的项目在本地运行一直运行在tomcat7 下面,自测没有问题;但是部署到服务器上的时候就在查询的时候老报错服务器上用的是 resin 3!
ognl.OgnlException: target is null for setProperty(null
这个问题 很典型,网上随便一搜索,一大把答案:
具体解决原因不外乎这几种:
1. bean 没有写相对应的get set 方法
2. ben里的属性 写的是 Integer 等,但是在用的时候没有初始化
但是我今天遇到的问题
在分页的时候 我是默认将页面上次查询的参数都取下来。
<!-- 遍历输出表单参数列表, 只输出必要的参数列表 TODO 加入多个参数的 -->
<c:forEach items="${param}" var="row">
<c:if test="${row.key!='cp'
&& row.key!='keyWord'
&& row.key!='jspUrl'
&& row.key!='currentPage'
&& row.key!='searchFlag'
&& row.key!='selpage'
&& row.key!='allRecorders'
&& !empty row.value
&& empty excludeParams[row.key]
}">
<input type="text" name="${row.key}" value="${row.value}">
</c:if>
</c:forEach>
就是这个方法:
在tomcat 下面 能够正确的取到,因为 我action 中传递的bean 是驼峰命名规则 例如 carVo
页面上 就用 carVo.id 等传递参数,
但是:
resin 3(别的版本没有实验)取出来的参数 都变成小写了 carvo carvo.id 这样 传递参数的时候
肯定 会报错!!!
所以 为了保险起见,我将action 中的 carVo 写成 carvo 问题得到解决!