struts 1 forwardによるバックグラウンドからフロントへのジャンプエラー
3333 ワード
struts 1はバックグラウンドからフロントにジャンプしたときにエラーを報告しました.空のポインタのエラーで、debugでデバッグしてもどこが間違っているのか追跡できません.このエラーメッセージはバックグラウンドのコードを実行してフロントページにジャンプしたときにエラーを報告していたので、後でエラーメッセージをよく見てprocessForwardConfigというエラーを発見しました.forwardを書いていないせいかと思います.バックグラウンドコードを実行した後、forwardがジャンプするページや他の.actionや.doメソッドを指定していないからでしょう.私はプログラムの流れの後ろに文を追加しました.
forward = new ActionForward("/myFriend.html");
forward.setRedirect(true);
この2つの文は、ページをリフレッシュしてデータを繰り返しコミットすることを防止するため、削除変更方法を実行することによってリダイレクトされます.このforwardはダイナミックリダイレクトで、もう一つのforwardはforward = mapping.findForward("[color=red]listMyFriend[/color]");
<forward name="[color=red]listMyFriend[/color]" path="/listMyFriend.jsp"></forward>
赤いフォントの場所の名前は必ず一致しなければなりません.またstrutsのプロファイルにも書くことができます<forward name="userIndex" path="/userIndex.html" redirect="true" />
あ、これもリダイレクトです.また,このような誤りを抱くもう一つの原因は,自分でカプセル化した方法に論理的な誤りがあることである.うちの会社はよく使う方法をjarパッケージにして、プロジェクトで引用したからです.全部で3つのjarパッケージがあります.1つはmybatisデータベースの操作方法に関するクラスで、1つはよく使われる方法のツールクラスで、1つはmybatisデータベースのマッピングファイルのjarパッケージです.このようによく使われる方法をjarパッケージとしてファイルに参照すると、プロジェクトのサイズが濃縮されるだけでなく、呼び出しや修正が便利になります.常用方法とビジネスロジックの分離を実現しただろう.
2012-3-23 13:28:26 org.apache.catalina.core.StandardWrapperValve invoke
: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:384)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.udrm.bms.struts.beans.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)