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
访问权限规则配置

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

Mod konvensyen modul WebMVC dimatikan secara lalai dan perlu dihidupkan melalui parameter konfigurasi:

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

Access Permission Rules Configuration

Dalam konvensyen mod, ia menyokong menetapkan kebenaran akses untuk laluan yang berbeza Peraturannya ialah: - 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

Konfigurasi peraturan pemintas

Memandangkan dalam mod konvensyen, tiada pengawal diperlukan untuk mengakses fail paparan, konfigurasi pemintas tidak boleh ditambah melalui kaedah pengawal Oleh itu, modul WebMVC menyediakan konfigurasi peraturan pemintas secara berasingan untuk konvensyen mod. Fungsi sambungan digunakan terutamanya melalui @InterceptorRule bersama-sama dengan antara muka IInterceptorRule;
@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;

  • 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;
@ResponseCache: mengisytiharkan bahawa hasil pelaksanaan objek pandangan yang dikembalikan oleh kaedah pengawal akan dicache

  • Nota
  • : Kaedah mengkonfigurasi peraturan; kelas boleh sewenang-wenangnya, dan kaedah itu sendiri tidak bermakna, hanya gunakan anotasi melalui kaedah
  • URL pseudo-statik
Modul WebMVC boleh menyepadukan parameter ke dalam URL melalui mod konvensyen, tidak lagi menghantar parameter melalui ?, 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

参数传递规则:

  • URL中通过分隔符_传递多个请求参数;
  • 通过UrlParams[index]
  • Lepaskan berbilang item melalui pemisah _ dalam parameter Permintaan URL
Petikan nilai parameter ​​melalui UrlParams[index]

Contoh pseudo-statik :

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

Rujukan parameter permintaan:
#-------------------------------------
# 约定模式配置参数
#-------------------------------------

# 是否开启视图自动渲染(约定优于配置,无需编写控制器代码,直接匹配并执行视图)模式,可选参数,默认值为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=

Nota
: Parameter pseudo-statik mestilah berterusan, dan parameter skop Parameter konfigurasi lengkap mod konvensyen
rrreee