Mod Konvensyen
Penjelasan: Konvensyen Lebih Konfigurasi, juga dikenali sebagai pengaturcaraan mengikut konvensyen, ialah paradigma reka bentuk perisian yang menggunakan kekangan seperti peraturan penamaan untuk mengurangkan konfigurasi dalam program, bertujuan untuk mengurangkan pembangunan perisian Bilangan keputusan yang perlu dibuat oleh orang ramai, menuai faedah kesederhanaan tanpa mengorbankan fleksibiliti.
Kadang-kadang kita perlu menulis kaedah pengawal hanya untuk mengakses fail paparan Apabila terdapat banyak kerja berulang, ia menjadi bencana Oleh itu, dalam modul WebMVC, dengan membolehkan Mod konvensyen menyokong akses terus ke fail paparan di bawah laluan base_view_path
tanpa menulis sebarang kod base_view_path
路径下的视图文件,无需编写任何代码;
WebMVC模块的约定模式默认为关闭状态,需要通过配置参数开启:
ymp.configs.webmvc.convention_mode=true
访问权限规则配置
在约定模式模式下,支持设置不同路径的访问权限,规则是:-
号代表禁止访问,+
或无符串代表允许访问,多个路径间用|
WEB-INF\ | |--templates\ | | | +--admin\ | | | +--users\ | | | +--reports\ | | | +--index.jsp | | | <...>
Access Permission Rules Configuration
-
bermaksud akses dilarang, +
atau tiada rentetan bermakna akses dibenarkan, berbilang Laluan dipisahkan oleh. |
; Contoh hak akses: Akses kepada direktori pentadbir dan fail index.jsp adalah seperti berikut: ymp.configs.webmvc.convention_view_paths=admin-|index-|users|reports+
Contoh konfigurasi parameter:
ymp.configs.webmvc.convention_interceptor_mode=true
@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() { } }
Penerangan:
@InterceptorRule: Anotasi peraturan pemintas;
@ResponseCache: mengisytiharkan bahawa hasil pelaksanaan objek pandangan yang dikembalikan oleh kaedah pengawal akan dicache
- diisytiharkan pada kelas yang melaksanakan antara muka IInterceptorRule, menunjukkan bahawa kelas ialah konfigurasi peraturan pemintas, diisytiharkan pada kaedah itu dikonfigurasikan untuk laluan permintaan tertentu Peraturan mempunyai fungsi yang serupa dengan @RequestMapping; ditentukan oleh lapisan atas ;
- @ContextParam: parameter konteks;
Modul WebMVC boleh menyepadukan parameter ke dalam URL melalui mod konvensyen, tidak lagi menghantar parameter melalui
- Nota
: Kaedah mengkonfigurasi peraturan; kelas boleh sewenang-wenangnya, dan kaedah itu sendiri tidak bermakna, hanya gunakan anotasi melalui kaedah- URL pseudo-statik
?, menjadikan URL kelihatan lebih Ia kelihatan lebih baik; Mod pseudo-statik dimatikan secara lalai dan perlu dihidupkan melalui parameter konfigurasi:
ymp.configs.webmvc.convention_urlrewrite_mode=true
Peraturan lulus parameter:
?
传递参数,让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
Petikan nilai parameter melalui参数传递规则:
- URL中通过分隔符
_
传递多个请求参数;- 通过
Lepaskan berbilang item melalui pemisahUrlParams[index]
_ dalam parameter Permintaan URL
UrlParams[index]
// 通过EL表达式获取参数 ${UrlParams[0]}:all ${UrlParams[1]}:2 ${UrlParams[2]}:15
Nota#------------------------------------- # 约定模式配置参数 #------------------------------------- # 是否开启视图自动渲染(约定优于配置,无需编写控制器代码,直接匹配并执行视图)模式,可选参数,默认值为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=