I.レビュー
1.1パラメータが日時タイプを受信した場合は、コントローラで処理される必要があります。
@InitBinder
エンティティタイプのクラスは時間をカプセル化し@DateTimeFormat
1.2どのようにデータ収集Webページようにデータを保存します。
ModelAndView:
モデル:デフォルトリクエストスコープ
地図:
HttpServletRequestの:
HttpSessionの:
@SessionAttributes(名= {})
静的リソースと1.3の契約。
要求アドレスのDispatcherServletプロセスが/であれば、それはまた、静的なリソースを扱います。
構成ファイルで使用することは、<MVC:デフォルト・サーブレット・ハンドラ>は、静的なリソースを処理しません。
リダイレクトを使用する方法1.4。リダイレクト
1.5 Springmvc完全なAjaxの機能。
サーバーの応答時間のAjaxのデータ型。HTML、JSON
結果は、HTML @ResponseBody応答であるが、それは文字化けします。StringHttpMessageConvert。
結果は、JSONレスポンスタイプです。ジャクソンは、JARパッケージと@ResponseBodyの助けが必要
第二に、ファイルのアップロード
1.インポートジャーパッケージ
2. Webページ。
フォームがなければなりませんポスト提出のコードがでなければならないマルチパート/フォームデータ ファイルアップロードテキストボックスが名前を付ける必要があります。
<%は、ページの言語@ = " javaの" contentTypeの= " text / htmlの;のcharset = UTF-8 " pageEncodingは = " UTF-8 "%> <!DOCTYPE HTML> <HTML> <HEAD> <メタ文字コード= " UTF-8 " > ここ<タイトル>を挿入タイトル</ TITLE> </ HEAD> <BODY> <フォームアクション= " addStudent "メソッド= " ポスト"のenctype = " マルチパート/フォームデータ」 > 姓名: <入力タイプ= " テキスト"=名前" 名前を" > <BR/> 年龄:の<input type = " テキスト"名前= " 年齢" > <BR/> 请选择上传的文件:の<input type = " ファイル"名= " myfileの" /> < BR /> <INPUT TYPE = " 提出"値= " 上传" > </ FORM> </ BODY> </ HTML>
3. では springmvc コンフィギュレーションファイルのアップロードパーサ。
<! -設定ファイルのパーサをアップロード- > <上記のid =述べた豆「MultipartResolver 」 クラス = 「org.springframework.web.multipart.commons.CommonsMultipartResolver 」 > <! -ファイルアップロードサイズを設定- > <プロパティ名を= " maxUploadSize "値= " 20971520 " > </プロパティ> </豆>
制御層処理コード4.
パッケージcom.zhiyou100.klb.controller。 インポートのjava.io.File; インポートにjava.io.IOException; インポートのjavax.servlet.http.HttpServletRequest; 輸入org.apache.commons.io.FileUtils。 輸入org.springframework.stereotype.Controller。 輸入org.springframework.web.bind.annotation.RequestMapping。 輸入org.springframework.web.multipart.MultipartFile。 @Controller パブリック クラスUploadController { @RequestMapping(" アップロード" ) パブリック文字列アップロード(MultipartFile MYFILE、HttpServletRequestのリクエスト){ // 1获取文件上传的真实保存路径 パス= request.getServletContext文字列()getRealPath(" /アップロード" ); システム。OUT .println(パス); // 2.ファイルオブジェクトの作成 ファイルファイル= 新しい新しいファイル(パス); IFを!(File.Exists( )){ file.mkdirs(); } // 3. GETファイル名の 文字列名= myfile.getOriginalFilename(); システム。OUT .println(名); ファイルTARGETFILE = 新しい新しいファイル(パス+ " / " + 名)。 試し{ FileUtils.writeByteArrayToFile(このtargetFile、myfile.getBytes())。 } キャッチ(IOExceptionを電子){ // TODO自動生成キャッチブロック e.printStackTrace(); } リターン 「リダイレクト:index.jspを」。 } }
第三に、インターセプタ(制御層アドレスフィルタの両方をブロックします:。)
1.インタフェースを実装するクラスを作成しますHandlerInterceptor
2.インタフェースを書き換える方法
パッケージcom.zhiyou100.klb.interceptor。 インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; 輸入org.springframework.web.servlet.HandlerInterceptor。 輸入org.springframework.web.servlet.ModelAndView。 パブリック クラスMyInterceptorはHandlerInterceptor {実装 @Override 公共 ボイドafterCompletion(HttpServletRequestのarg0に、HttpServletResponseのARG1、オブジェクトARG2、例外ARG3) 例外{スロー システム。アウト .println(" 请求处理完成后执行的方法" )。 } @Override 公共 のボイドpostHandle(HttpServletRequestのarg0に、HttpServletResponseのARG1、オブジェクトARG2、のModelAndViewのARG3)は 例外{スロー システム。アウト .println(" ========== " ); } @Override パブリックブールpreHandle(HttpServletRequestのarg0に、HttpServletResponseのARG1、オブジェクトARG2)例外{スロー // TODO自動生成方法スタブ システム。アウト .println(" 起始点" ); 返す 真 ; // 真返回如果表示允许通过 } }
3.クラスには、設定ファイルをspringmvcするために作成します。
<! -コンフィギュレーション・インターセプター- > <MVC:インターセプタ> <! -インターセプタ複数のかもしれ- > <MVC:インターセプタ> <! - **すべてのサブディレクトリおよびユーザ要求アドレスを表します- - > <MVC:マッピングパス= " /ユーザ/ ** " /> <MVC:-mapping除外するパス= " /user/list.do " /> <豆のクラス = " com.zhiyou100.klb.interceptor.MyInterceptor " > </ビーン> </ MVC:インターセプタ> </ MVC:インターセプタ>
第四に、データの検証
1.インポートジャーパッケージ
2.エンティティクラスに対応する注釈を追加します。
制御パラメータ受理層3.。
@RequestMapping(" 登録") // requestMapping:表示的就是你的访问地址 パブリック文字列レジスタ(@Validユーザーのユーザー、BindingResultのBR、モデルモデル){ 場合(br.hasErrors()){ 一覧 <FieldError> fieldErrors = BR .getFieldErrors()。 地図 <文字列、オブジェクト> errorMsg内容= 新しい HashMapの<> (); 用(FieldErrorのF:fieldErrors){ errorMsg.put(f.getField()、f.getDefaultMessage())。 } model.addAttribute(" errorMsg内容" 、errorMsg内容)。 戻る 「登録」。 } 他{ list.add(ユーザ)。 戻る 「前進:リスト」; } }
4.エラーメッセージが表示されますが.jspファイル
<%は、ページの言語@ = " javaの" contentTypeの= " text / htmlの;のcharset = UTF-8 " pageEncodingは = " UTF-8 "%> <!DOCTYPE HTML> <HTML> <HEAD> <メタ文字コード= " UTF-8 " > ここ<タイトル>を挿入タイトル</ TITLE> </ HEAD> <BODY> 欢迎注册 <フォームアクション= " / SpringMVCユーザー/ユーザー/登録"メソッド= " ポスト" > 账号: <入力タイプ= "テキスト「名前= 」名前" > $ {} errorMsg.name <BR/> 密码:の<input type = " テキスト"名前= " パスワード" > $ {} errorMsg.password <BR/> 电话:の<input type = " テキスト"名前= " 電話" > $ {errorMsg.phone} <BR/> の<input type = " 提出"値= " 注册" > <入力のonclick = " LOCATION.HREF = 'ジャバスクリプト:history.go(-1)' "タイプ= "ボタン「値= 」返回"> </ FORM> </ BODY> </ HTML>
5.共通アノテーション