开发者社区> 问答> 正文

关于NullPointerException的问题?报错

@JFinal 你好,想跟你请教个问题:

代码

----------------------

@Before(BizStatusValidator.class)
public void update() {
System.out.println("para is "+ getPara());
BizStatus.dao.findById(getParaToInt()).update();
redirect("bizstatus");
}



报错信息

--------------------------

[ERROR]-[Thread: qtp19331111-20]-[com.jfinal.core.ActionHandler.handle()]: /bizstatus/update
java.lang.NullPointerException
at com.mc.backserver.web.BizStatusController.update(BizStatusController.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:55)
at com.jfinal.validate.Validator.intercept(Validator.java:60)
at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:51)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:77)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Unknown Source)


---------------------


展开
收起
爱吃鱼的程序员 2020-06-22 19:16:51 520 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    请问你不检查findById是否找到对象就update了?这么明显的异常都看不懂的话,建议从Java基础补起吧

    <aclass='referer'target='_blank'>@JFinal你好,

    测试的次序如下:

    edit-》update

    上面的update方法中,换用getModel()方法依然存在问题:

    getModel(BizStatus.class).update();

    打印getModel()的结果为:

    <arel="nofollow">com.mc.backserver.web.BizStatus<aclass='referer'target='_blank'>@0{}

     

    但同样的代码,其他模块可以update成功。检查数据库表也没发现问题,请教@JFinal兄是何问题?


     

     

    找到问题了。通过getModel()才行,而且发现页面为bizstatus,需要在getModel(BizStatus.class,"bizstatus").update,如果直接调用getModel(BizStatus.classs).update是没响应的。

    <divclass="ref">

    引用来自“peterxin”的答案

    <divclass=ref_body>

    找到问题了。通过getModel()才行,而且发现页面为bizstatus,需要在getModel(BizStatus.class,"bizstatus").update,如果直接调用getModel(BizStatus.classs).update是没响应的。

    可能是这句返回的是null:<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14.399999618530273px;line-height:22px;background-color:#FFFFFF;">BizStatus.dao.findById(getParaToInt()) 然后调用null的update()方法就出错了<aclass='referer'target='_blank'>@jFinal兄,是这样的么?如同demo里面的过程一样,先edit后update。在edit时候通过url传para过来;在update方法时,只能在Model中传参数。不知道是否为@jfinal兄的设计初衷?

    2020-06-22 19:17:06
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载