컨벤션 모드
Explanation: 컨벤션에 의한 프로그래밍이라고도 알려진 Convention Over Configuration은 명명 규칙과 같은 제약 조건을 사용하여 프로그램의 구성을 줄이는 소프트웨어 설계 패러다임으로, 소프트웨어 개발을 줄이기 위해 사람들이 내려야 하는 결정의 수를 줄이고, 유연성을 희생하지 않고도 단순성의 이점을 누릴 수 있습니다.
때때로 뷰 파일에 액세스하기 위해 컨트롤러 메서드를 작성해야 하는 경우가 있습니다. 반복 작업이 많으면 재앙이 됩니다. 따라서 WebMVC 모듈에서는 컨벤션 모드를 활성화하여 뷰 파일에 대한 직접 액세스를 지원합니다. 코드를 작성하지 않고 base_view_path
경로에서 base_view_path
路径下的视图文件,无需编写任何代码;
WebMVC模块的约定模式默认为关闭状态,需要通过配置参数开启:
ymp.configs.webmvc.convention_mode=true
访问权限规则配置
在约定模式模式下,支持设置不同路径的访问权限,规则是:-
号代表禁止访问,+
或无符串代表允许访问,多个路径间用|
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() { } }🎜🎜🎜차단 규칙 구성 예: 🎜🎜🎜
ymp.configs.webmvc.convention_urlrewrite_mode=true🎜🎜
Description:
@InterceptorRule:
@Before: 계약 모드의 인터셉터는 @Before 사전 인터셉터만 지원합니다. 상위 계층에 의해 지정됨 ;
- 는 IInterceptorRule 인터페이스를 구현하는 클래스에 선언되어 해당 클래스가 차단 규칙 구성임을 나타냅니다. 특정 요청 경로에 대해 구성됨 규칙에는 @RequestMapping과 유사한 기능이 있습니다.
규칙 구성에서 지원되는 주석:
- @ContextParam: 컨텍스트 매개변수
- @ResponseCache: 컨트롤러 메소드에서 반환된 뷰 객체의 실행 결과가 캐시됨을 선언합니다.
- Note
: 규칙을 구성하는 방법입니다. 클래스는 임의적일 수 있으며 메서드 자체에는 의미가 없습니다. 메서드를 통해 주석을 사용하면 됩니다.URL pseudo-static
WebMVC 모듈은 더 이상 ?
, URL을 더 보기 좋게 만듭니다. 의사 정적 모드는 기본적으로 꺼져 있으며 구성 매개변수를 통해 켜야 합니다:
?
传递参数,让URL看上去更好看一些;
伪静态模式默认为关闭状态,需要通过配置参数开启:
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
매개변수 전달 규칙:
URL 요청 매개변수의 구분 기호
_
를 통해 여러 항목을 전달합니다. UrlParams[index]
를 통해 매개변수 값을 인용합니다. 의사 정적 예 :
#------------------------------------- # 约定模式配置参数 #------------------------------------- # 是否开启视图自动渲染(约定优于配置,无需编写控制器代码,直接匹配并执行视图)模式,可选参数,默认值为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=요청 매개변수 참조:
rrreee
Note
: 의사 정적 매개변수는 연속적이어야 하며 UrlParams 매개변수 세트는 요청 범위에 저장됩니다.