Ajax、Struts和空指针

Ajax、Struts和空指针,ajax,struts,nullpointerexception,Ajax,Struts,Nullpointerexception,我最近开发了一个简单的ajax搜索。我的服务器中的全部代码都使用Struts,因此我不得不使用一种有点麻烦的编程方式。我的main方法返回ActionForward。我编程的方式是将文本发送到客户端,然后返回一个空动作转发 这很好用 …除此之外,它在日志中生成空指针错误。我们的生产日志通常会在每次发生错误时发送一封电子邮件。我怎样才能消除这个错误?是否有其他方法(不涉及其他框架) 谢谢 当你说你的“主要方法”时,你指的是你的动作类吗?如果通过ajax调用,则可以将返回类型设置为void。NPE的

我最近开发了一个简单的ajax搜索。我的服务器中的全部代码都使用Struts,因此我不得不使用一种有点麻烦的编程方式。我的main方法返回ActionForward。我编程的方式是将文本发送到客户端,然后返回一个空动作转发

这很好用

…除此之外,它在日志中生成空指针错误。我们的生产日志通常会在每次发生错误时发送一封电子邮件。我怎样才能消除这个错误?是否有其他方法(不涉及其他框架)


谢谢

当你说你的“主要方法”时,你指的是你的动作类吗?如果通过ajax调用,则可以将返回类型设置为void。

NPE的原因可能存在于应用程序中,而不是struts中。我发现自己今天也面临同样的问题,真的很困惑。Struts支持返回null ActionForward,因此没有理由获取NPE

所以我深入研究了NPE,发现它是由属于我们的应用程序的类抛出的。这个类继承了struts DispatchAction类,并由应用程序中的所有action类继承


长话短说,虽然struts支持空ActionForward,但其后代类不支持。一旦我调整子类以处理空值,NPE就消失了。

是的,但我使用同一个类来执行get和post。get方法向前返回操作(到右侧JSP),post将执行ajax命令。谢谢你的快速回复!也许我仍然误解了它是如何设置的,但是你不能让get方法与ActionForward返回类型保持原样,然后将post方法更改为returnvoid吗?我正在扩展一个项目使用的类,main方法返回一个action forward。这里:公共ActionForward执行(ActionMapping映射、ActionForm表单、HttpServletCommonRequest请求、HttpServletResponse响应)抛出ServletException、CaduniruntimeException、CoreIspRuntimeException、RuntimeException、CoreIspException、CadunieException、UsarionaEncontractoradonaseSaoException、SessaoinValidaeException、,FunctionarioLoogadoException、UsuarioInConsistentException、JSONException、IOException{我认为您必须在Action类中创建另一个方法,该方法镜像父类中的execute方法,但返回void。也许还有另一种方法,但我不知道。是什么生成了NPE?返回
null
只意味着操作本身处理了编写响应,Struts不需要再执行任何过程埃辛。