Unexpected Exception caught setting 异常解决记录

来源:互联网 发布:淘宝代购是怎么赚钱的 编辑:程序博客网 时间:2024/06/06 16:34

一,Unexpected Exception caught setting 异常

今天在做crm项目时,想要实现一个客户列表的分页查询,但在action总是不能成功把分页数据带回给jsp,初次查询之后action应该返回当前页currentPage给jsp,但是下面的OGNL表达式总是不能正确获取值并抛出以下异常,经过仔细检查,发现是PageBean中的属性currentPage的set方法有误,上网查询后得知,

造成这种异常的原因其实很简单,如果package使用了ParameterIntercepter这个拦截器,OgnlValueStack

会自动为Action中有set方法的属性赋值(如果用了modeldriven,同样也会为实体中有set方法的属性赋值),赋值时,OGNL

会将此时值栈中的action当做当前节点(默认情况下在请求进入action之前,该action也会被放入值栈),然后访问它的成

员属性的set方法,如果ognl的context中的参数在action中找不到对应的set方法,就会抛出OgnlException,最后我们在控制

台就看到了这个异常信息。

所以在spring项目中,使用struts2作为web层,要注意bean的set的方法是否有误,否则不能成功赋值。
<A href="javaScript:void(0)" onclick="changePage(<s:property value='#pageBean.currentPage-1' />)" >前一页</A>]<B><s:property value="#pageBean.currentPage" /></B>[<A href="javaScript:void(0)" onclick="changePage(<s:property value='#pageBean.currentPage+1' />)"  >后一页</A>] 

Unexpected Exception caught setting 'select' on 'class com.cai.crm.action.CustomerAction: Error setting expression 'select' with value ;

阅读全文
0 0