[004] JavaEEのシリーズSpring MVCの使用

[共通MVCアーキテクチャ]

 

外部HTTP要求は、第1のコントローラに到着、データCURD操作後、クライアントを表示するビュー、ビューのレンダリングHTMLを返します。

 

[コントローラメソッドにルートをバインドするには?]

1.コントローラを作成します。

@Controller
 パブリック クラスUserControllerで{
...
}

 

2.コントローラメソッドを作成し、@RequestMappingをマークするために注釈を使用

@RequestMapping( "/ユーザー/リスト" 公共 ボイドのUserList(){
...
}

 

このように3、あなたはユーザリスト方式のUserControllerでは/プロジェクト名/ユーザー/リスト・パスにバインドするだろう

 

[用途] JSP

 

1. [追加]は、JSPを頼ります

< 依存> 
    < groupIdを>のjavax.servlet </ groupIdを> 
    < たartifactId > JSTL </ たartifactId > 
    < バージョン> 1.2 </ バージョン> 
</ 依存関係>

 

2.構成クラスを追加します。

@Bean
 公共ViewResolver jspViewResolver(){
    InternalResourceViewResolverレゾルバ = 新しいInternalResourceViewResolver()。
resolver.setViewClass(JstlView。
クラス); resolver.setPrefix( "/ WEB-INF / JSP /" )。 resolver.setSuffix( ".jspという" ); リターンリゾルバ。 }

 

3. JSP WEN-INF / JSP /の下にファイルを作成します。

< HTML > 
    < 身体>
        多くのユーザーがあります。
    </ ボディ> 
</ HTML >    

 

4.コントローラを使用してください

@RequestMapping( "/ユーザー/リスト")
パブリック文字列USERLIST(){
    「my_friends」を返します。
}

 

[表示するコントローラからパラメータを渡します]

コントローラパラメータ追加モデルのための方法であって

( "/ユーザー/リスト"を@RequestMapping 公共 ボイドUSERLIST(モデルモデル){
...

 

2.使用model.addAttribute(文字列キー、文字列値)

model.addAttribute( "nbUsers"、13);

 

JSPで3.属性、$属性を取得使用して

< P > $ {} nbUsersユーザーがあります。</ P >は、

 

[取得パスのパラメータ

名前に/ユーザー/ 5/5とどのように名前のためにそれを得ますか?

{}ルーティングアドレスマッチングを達成することができる使用。

@RequestMapping( "/ユーザ/ {ID} / {フィールド}" 公共 ボイド showUserField(@PathVariable( "ID")長期のuserId、@PathVariable( "フィールド" )は、文字列フィールド){
...
}

{}実際のパラメータと一致するように@RequestMappingに@PathVariable(「フィールド名」)を使用して、一致する関連ルーティングパラメータを使用

 

【本制御のすべてのメソッドのために同じプレフィックスをマップ]

1. Controllerクラス自体は注釈を付けます

@コントローラ
@RequestMapping( "/ユーザ" パブリック クラスUserControllerで{
...
}

 

2.アクションメソッドは、独自の接頭辞/ユーザーをもたらします

@RequestMapping( "/リスト" 公共 ボイドのUserList(){
...
}

/ユーザー/リストの実際のルート

@RequestMapping( "追加/" 公共 ボイドアドユーザー(){
...
}

用/ユーザー/追加実際のルート

 

使用インターセプター]は実行方法の前および後に制御を行います

完全な遮断プロセス:

 

1.インターセプター、継承HandlerInterceptorAdapterを作成します。

パブリック クラス PerformanceInterceptorは延び HandlerInterceptorAdapterを{

 

2.書き換えに関連する方法

@Override
 パブリック ブール preHandle(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラ)がスロー{例外
    ...
    返す ;
}

@オーバーライド
公共 ボイド postHandle(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラのModelAndViewのModelAndView)がスロー{例外
    ...
}

@オーバーライド
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    ...
}

 

3. 创建配置类

@Configuration
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter{
...

 

4. 创建Bean

@Bean
public HandlerInterceptor performanceInterceptor() {
    PerformanceInterceptor interceptor;
    interceptor = new PerformanceInterceptor();
    return interceptor;
}

 

5. 注册拦截器

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(performanceInterceptor());
}

也可以在注册拦截器的时候配置拦截器适用的路由(对于局部拦截器而言):

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(performanceInterceptor()).addPathPatterns("/home", "/user/*");
}

 

おすすめ

転載: www.cnblogs.com/dayAndnight2019/p/11310431.html