Spring MVCの基本

  Webプロジェクトの開発プロセスは、一般的に春のMVCをMVC(モデル - ビュー - コントローラ)パターン、以前のStruts2のを使用している、現在の春ブーツに、同様の考えています

道路。以上で春ブーツ(会社はまだ春のMVCを使用したが)本当にSSMまたはSSHフレームワークを戻りたいが、それのSpring MVCの内容のための独自のレビューも、このエッセイを書きました。

ワークフロー

 

コンフィギュレーションのDispatchServlet

1、web.xmlの

2、サーブレットコンテナ内に配置されることにより(Tomcat7 +版)

/ ** 
 * AbstractAnnotationConfigDispatcherServletInitializer拡張クラスと自動的DispatchServlet設定
 *春のApplicationContext(アプリケーションのコンテキスト内のサーブレット・コンテキストは、アプリケーションである)
 * / 
パブリック クラス SpittrWebAppInitializer 延びAbstractAnnotationConfigDispatcherServletInitializer { 

    / ** 
     * @Configuration使用アノテーションを持つクラスを返すをContextLoaderListenerアプリケーションコンテキストビーンで作成定義
     * @return 
     * / 
    @Override 
    保護 <?>クラス[] getRootConfigClasses(){
         戻り 新しい新しいクラス[] {RootConfig。クラス}; 
    } 

    / ** 
     *戻り@Configurationで注釈このクラスは、Beanで作成したアプリケーションのコンテキストを定義するために使用されDispatchServlet
     * @Return 
     * / 
    @Override 
    保護 <?>クラス[] getServletConfigClassesは(){
         戻り 新しい新しいクラス[] {のWebConfig。クラス}; 
    } 

    / ** 
     * 1つ以上のパスDispatchServletにマッピング。"/"は、デフォルトのアプリケーション・サーブレットを示し、すべての要求を管理する
     * @return 
     * / 
    @Overrideが
    保護{)文字列[] getServletMappingsを(
         戻り 新しい新しい文字列を[] { "/" ;} 
    } 
}
設定DispatchServlet
パブリック クラスは、 WebConfigの   延びWebMvcConfigurerAdapter {
 //は一般パーサ構成図含ん
 // 静的リソース処理を
 // 
}
WebConfig

DispatchServlet起動、作成されたSpringアプリケーションコンテキストがロードされた声明豆、春のWebアプリケーションは、通常、別のアプリケーション・コンテキストがあります

作成のContextLoaderListener

DispatchServlet:ロード豆は、コントローラ、ビューリゾルバ、マッピングプロセッサとしてWebコンポーネントが含まれ

ContextLoaderListener:ローディングアプリケーション他のビーンは、後輪駆動のアプリケーションは、一般的に、中間層とデータ層のアセンブリであります

共通アノテーション

1は、EnableWebMvc @:ウェブMVCの構成でオープンクラス構成のサポート、ノートを使用していないいくつかのViewResolverまたはMessageConverter、として、書き換える必要があり

SpringMVCを構成するための方法のWebMvcConfigurerAdapter。

2、RequestParam @ます。http:// host:port /パスID = 1001?

公共の文字列TEST1(@RequestParam( "ID")文字列ID)

3、PathVariable @ます。http:// host:port /パス/ 1001

公共の文字列TEST2(@PathVariable( "ID")文字列ID) 

図4に示すように、フォームの検証:javax.validation.constraints内のすべてのパケット

public class Login {
    @NotNull
    @IsMobile
    private String mobile;
    
    @NotNull
    @Length(min=32)
    private String password;
}
public Result<String> doLogin(HttpServletResponse response, @Valid LoginVo loginVo) {
    log.info(loginVo.toString());
    //登录
    String token = userService.login(response, loginVo);
    return Result.success(token);
}

5、@ResponseBody:支持将返回值放在response内,而不是一个页面,通常用户返回json数据

@ResponseBody
public String test3() {

    return "id";//这时候返回到页面的是String,而不是解析到id.html等类似的页面
}

6、@RequestBody:允许request的参数在request体中,而不是在直接连接在地址后面。

7、@RestController:该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,该Controller的所有方法都默认加上了@ResponseBody。

@Controller
@ResponseBody
public @interface RestController {
    String value() default "";
}

8、@ModelAttribute:绑定键值对到Model里

先写到这,同学来了,去喝酒了。。。。

 

おすすめ

転載: www.cnblogs.com/huigelaile/p/10963320.html
おすすめ