webwork提交表单时的webwork Could not create and/or set value back on to object异常

7 篇文章 0 订阅
3 篇文章 0 订阅

刚开始使用webwork的时候忽略了一个问题,在Action中没有对提交的表单对象进行实例化。例如提交一个叫UserForm的表单,它所对应的类为UserInfo表单时,在UserInfoAction中没有对UserInfo进行实例化操作就会报出如下异常:

[mywap] ERROR [tcpConnection-8080-0] InstantiatingNullHandler.nullPropertyValue(86) | Could not create and/or set value back on to object
java.lang.NullPointerException
        at ognl.OgnlRuntime$ClassCache.get(OgnlRuntime.java:144)
        at ognl.OgnlRuntime.getDeclaredMethods(OgnlRuntime.java:1188)
        at ognl.OgnlRuntime.getSetMethod(OgnlRuntime.java:1270)
        at ognl.OgnlRuntime.hasSetMethod(OgnlRuntime.java:1291)
        at ognl.OgnlRuntime.hasSetProperty(OgnlRuntime.java:1307)
        at com.opensymphony.xwork.util.OgnlUtil.getRealTarget(OgnlUtil.java:156)
        at com.opensymphony.xwork.util.InstantiatingNullHandler.nullPropertyValue(InstantiatingNullHandler.java:68)
        at ognl.ASTProperty.getValueBody(ASTProperty.java:98)
        at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:171)
        at ognl.SimpleNode.getValue(SimpleNode.java:193)
        at ognl.ASTChain.setValueBody(ASTChain.java:168)
        at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:180)
        at ognl.SimpleNode.setValue(SimpleNode.java:230)
        at ognl.Ognl.setValue(Ognl.java:476)
        at com.opensymphony.xwork.util.OgnlUtil.setValue(OgnlUtil.java:189)
        at com.opensymphony.xwork.util.OgnlValueStack.setValue(OgnlValueStack.java:115)
        at com.opensymphony.xwork.util.OgnlValueStack.setValue(OgnlValueStack.java:99)
        at com.opensymphony.xwork.interceptor.ParametersInterceptor.before(ParametersInterceptor.java:71)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:34)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
        at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
        at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
        at com.caucho.server.http.Invocation.service(Invocation.java:315)
        at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
        at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
        at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:164)
        at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
        at java.lang.Thread.run(Thread.java:595)
[mywap] ERROR [tcpConnection-8080-0] ServletDispatcher.serviceAction(281) | Could not execute action
java.lang.NullPointerException
        at com.mywap.webwork.action.ColumninfoAction.save(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:300)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:166)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
        at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
        at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
        at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
        at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
        at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
        at com.caucho.server.http.Invocation.service(Invocation.java:315)
        at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
        at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
        at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:164)
        at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
        at java.lang.Thread.run(Thread.java:595)

这种异常就是由于上述问题引起的,其实反过来想也很简单。怎么可能对一个为null的对象进行set和get操作呢,没有什么意义嘛。
因此我们需要在Action中new一个对象出来即:
UserInfo userInfo = new UserInfo();
这样在用userInfo进行set和get操作就有意义了

我们要做有意义的事情!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值