SpringMVC学習ログ3

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.共通アノテーション

 

おすすめ

転載: www.cnblogs.com/kklb/p/11462419.html