コンベンションモード


説明: コンベンション・オーバー・コンフィギュレーションは、コンベンション・バイ・コンベンション・プログラミングとも呼ばれ、名前付け規則などの制約を使用してプログラム内の構成を削減するソフトウェア設計パラダイムであり、ソフトウェア開発で必要な意思決定の数を減らすことを目的としています。柔軟性を犠牲にすることなく、シンプルさのメリットを享受できます。

場合によっては、ビュー ファイルにアクセスするためだけにコントローラー メソッドを作成する必要があるため、繰り返しの作業が多い場合は、WebMVC モジュールでコンベンション モードを有効にすることで、ビュー ファイルへの直接アクセスがサポートされます。コードを何も書かずに base_view_path パスの下に追加します。base_view_path路径下的视图文件,无需编写任何代码;

WebMVC模块的约定模式默认为关闭状态,需要通过配置参数开启:

ymp.configs.webmvc.convention_mode=true
访问权限规则配置

在约定模式模式下,支持设置不同路径的访问权限,规则是:-号代表禁止访问,+或无符串代表允许访问,多个路径间用|

WebMVC モジュールのコンベンション モードはデフォルトでオフになっており、構成パラメータを使用してオンにする必要があります:

WEB-INF\
|
|--templates\
|   |
|   +--admin\
|   |
|   +--users\
|   |
|   +--reports\
|   |
|   +--index.jsp
|   |
|   <...>

アクセス許可ルールの構成

規約内モードでは、さまざまなパスのアクセス許可の設定をサポートします。ルールは次のとおりです。- はアクセスが禁止されることを意味し、+ または文字列なしはアクセスが許可されることを意味し、複数のパスは次のように区切られます。 |;
アクセス権の例: admin ディレクトリおよびindex.jsp ファイルへのアクセスは次のとおりです:
ymp.configs.webmvc.convention_view_paths=admin-|index-|users|reports+

パラメータ設定の例:

ymp.configs.webmvc.convention_interceptor_mode=true

インターセプター ルールの構成

コンベンション モードでは、ビュー ファイルへのアクセスにコントローラーが必要ないため、コントローラー メソッドを介してインターセプター構成を追加することはできません。そのため、WebMVC モジュールはコンベンション用にインターセプター ルールの構成を個別に提供します。拡張機能は、主に IInterceptorRule インターフェイスと組み合わせて @InterceptorRule を通じて使用されます。
インターセプター ルール設定はデフォルトでオフになっており、設定パラメーターを通じてオンにする必要があります:
🎜🎜
@InterceptorRule("/demo")
@Before(WebUserSessionCheck.class)
public class InterceptRuleDemo implements IInterceptorRule {

    @InterceptorRule("/admin/*")
    @Before(AdminTypeCheckFilter.class)
    public void adminAll() {
    }

    @Clean
    @InterceptorRule("/admin/login")
    public void adminLogin() {
    }

    @InterceptorRule("/user/*")
    public void userAll() {
    }

    @InterceptorRule("/mobile/person/*")
    public void mobilePersonAll() {
    }
}
🎜🎜インターセプト ルールの設定例: 🎜🎜🎜りー🎜🎜

説明:

@InterceptorRule: インターセプター ルール アノテーション。

  • は IInterceptorRule インターフェイスを実装するクラスで宣言され、クラスがインターセプト ルール設定であることを示します。特定のリクエスト パス用に設定されたルールには @RequestMapping と同様の機能があります。
  • ルール設定でサポートされているアノテーション:

@Before: アグリーメント モードのインターセプターは @Before 事前インターセプトのみをサポートします。
  • @Clean: インターセプターをクリーンアップします。上位層で指定 ;
  • @ContextParam: コンテキストパラメータ;
  • @ResponseCache: コントローラーメソッドによって返されたビューオブジェクトの実行結果をキャッシュすることを宣言します

: ルールの設定方法クラスは任意であり、メソッド自体には意味がありません。メソッドを介してアノテーションを使用するだけです。

URL 擬似静的WebMVC モジュールは、?、URL の見栄えがよくなります。

疑似静的モードはデフォルトでオフになっており、設定パラメータを使用してオンにする必要があります: ?传递参数,让URL看上去更好看一些;

伪静态模式默认为关闭状态,需要通过配置参数开启:

ymp.configs.webmvc.convention_urlrewrite_mode=true

参数传递规则:

  • URL中通过分隔符_传递多个请求参数;
  • 通过UrlParams[index]
URL原始格式:
http://localhost:8080/user/info/list?type=all&page=2&page_size=15

URL伪静态格式:
http://localhost:8080/user/info/list_all_2_15

パラメータ渡しルール:
URL リクエストパラメータの区切り文字 _ を介して複数の項目を渡します。

UrlParams[index] 経由でパラメータ値を引用します。
疑似静的例:

// 通过EL表达式获取参数
${UrlParams[0]}:all
${UrlParams[1]}:2
${UrlParams[2]}:15

リクエストパラメータのリファレンス:
#-------------------------------------
# 约定模式配置参数
#-------------------------------------

# 是否开启视图自动渲染(约定优于配置,无需编写控制器代码,直接匹配并执行视图)模式,可选参数,默认值为false
ymp.configs.webmvc.convention_mode=

# Convention模式开启时视图文件路径(基于base_view_path的相对路径,'-'号代表禁止访问,'+'或无符串代表允许访问),可选参数,默认值为空(即不限制访问路径),多个路径间用'|'分隔
ymp.configs.webmvc.convention_view_paths=

# Convention模式开启时是否采用URL伪静态(URL中通过分隔符'_'传递多个请求参数,通过UrlParams[index]方式引用参数值)模式,可选参数,默认值为false
ymp.configs.webmvc.convention_urlrewrite_mode=

# Convention模式开启时是否采用拦截器规则设置,可选参数,默认值为false
ymp.configs.webmvc.convention_interceptor_mode=
: 擬似静的パラメータは連続している必要があり、UrlParams パラメータセットはリクエストスコープに格納されます。 🎜コンベンションモードの完全な設定パラメータ🎜🎜🎜rrreee🎜🎜🎜