SpringMVCジャンプの問題
SpringMVCのコントローラーは、データを処理するたびに論理的なビューとモデルを返します。
したがって、ネイティブコントローラーがModelandViewを返していることがわかります(ビューとモデルが内部にあります)。
通常の状況では(@modelattributeで注釈が付けられていない限り)、ModelandViewは最終的に返されます。
もちろん、関数処理方法では必ずしも論理的なビューを返す必要がない場合がありますが、別の関数メソッドにリダイレクトすることもできます。
論理的ビューまたは別の機能的方法に内部的に転送します。
---
SpringMVCのパワーは、サーブレットの大量の基礎コードをカプセル化することですが、サーブレットAPIからユーザーを完全にブロックします。
したがって、SpringMVCのページジャンプは、次の2つのカテゴリに分割されます。
Servletapiを使用して、ページジャンプを実装します
リダイレクト方法:リダイレクトの本質はブラウザにリクエストの再送信を要求することであるため、SpringMVCのページは通常Web-INFの下に配置され、ブラウザはそれらに直接アクセスできません)
したがって、ここでのリダイレクトは、本質的に別の機能的方法にリダイレクトされています。
サーバー内の転送を要求:リクエスト転送はサーバーの内部動作であるため、JSPページに直接ジャンプして別の関数処理方法にジャンプできます。
「テキスト
//ページリダイレクトにネイティブサーブレットを使用@RequestMapping( "/c")public string test(httpservletresponse応答、httpservletrequestリクエスト)Servletexception、ioexception {system.out.println( "testc); server // request.getRequestDispatcher( "/web-inf/jsp/index.jsp")。 //サーバー内の関数処理方法にスキップ// request.getRequestDispatcher( "/dispather/b")。 //関数メソッドresponse.sendredirect(request.getContextPath()+"/dispather/b"); nullを返します。 }SpringMVCのAPIを使用して、ページジャンプを実装します
論理ビュー名を直接返します
text @RequestMapping( "/b")public string testb(){system.out.println( "testb"); // [index]を返すビューに直接戻ります。 }Custom ModelandViewを返します:ModelAndViewをカスタマイズするときは、転送をリダイレクトまたはリクエストできます。
「テキスト
//コントローラーはModelandViewを使用して@RequestMapping( "/e")Public ModelandView teste(){System.out.Println( "teste"); //サーバー内のページにスキップ// return "index"; //サーバー内の関数処理方法にスキップ// new ModelandView( "forward:/dispather/b"); //関数メソッドをリダイレクトnew ModelandViewを返します( "Redirect:/Dispather/B");}要約します
上記は、SpringMVCのページジャンプの問題について議論するこの記事に関するすべてです。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!
参照:
springMVCシンプルログイン例のJavaプログラミングの実装
SpringMVCインターセプターは、シングルサインオンを実装します
SpringMVCレストスタイルの紹介と実装コードの例