Mode Convention
Explication : Convention Over Configuration, également connu sous le nom de programmation par convention, est un paradigme de conception logicielle qui utilise des contraintes telles que des règles de dénomination pour réduire la configuration dans le programme, visant à réduire le développement logiciel. Le nombre de décisions que les gens doivent prendre, profiter des avantages de la simplicité sans sacrifier la flexibilité.
Parfois, nous devons écrire une méthode de contrôleur juste pour accéder à un fichier de vue. Lorsqu'il y a beaucoup de travail répétitif, cela devient un désastre, par conséquent, dans le module WebMVC, en activant le mode convention, il prend en charge l'accès direct aux fichiers de vue. sous le chemin base_view_path
sans écrire de code ; base_view_path
路径下的视图文件,无需编写任何代码;
WebMVC模块的约定模式默认为关闭状态,需要通过配置参数开启:
ymp.configs.webmvc.convention_mode=true
访问权限规则配置
在约定模式模式下,支持设置不同路径的访问权限,规则是:-
号代表禁止访问,+
或无符串代表允许访问,多个路径间用|
WEB-INF\ | |--templates\ | | | +--admin\ | | | +--users\ | | | +--reports\ | | | +--index.jsp | | | <...>
Access Permission Rules Configuration
-
signifie que l'accès est interdit, +
ou aucune chaîne signifie que l'accès est autorisé, plusieurs Les chemins sont séparés par |
; Exemple de droits d'accès : L'accès au répertoire admin et au fichier index.jsp est interdit. La structure des répertoires est la suivante : ymp.configs.webmvc.convention_view_paths=admin-|index-|users|reports+
Exemple de configuration des paramètres :
ymp.configs.webmvc.convention_interceptor_mode=true
Configuration des règles d'intercepteur
@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() { } }🎜🎜🎜Exemple de configuration de la règle d'interception : 🎜🎜🎜
ymp.configs.webmvc.convention_urlrewrite_mode=true🎜🎜
Description :
@InterceptorRule : l'annotation de la règle d'interception ;
- est déclarée sur la classe qui implémente l'interface IInterceptorRule, indiquant que la classe est une configuration de règle d'interception ;
- est déclarée sur la méthode de classe, indiquant qu'elle l'est ; configurées pour un chemin de requête spécifique Les règles ont des fonctions similaires à @RequestMapping ;
Annotations prises en charge dans la configuration des règles :
Remarque
- @Before : les intercepteurs en mode accord ne prennent en charge que la pré-interception @Before ; spécifié par la couche supérieure ;
- @ContextParam : paramètre de contexte ;
- @ResponseCache : déclare que le résultat de l'exécution de l'objet de vue renvoyé par la méthode du contrôleur sera mis en cache
: La méthode de configuration de la règle ; la classe peut être arbitraire et la méthode elle-même n'a aucune signification, utilisez simplement des annotations via des méthodes ;
URL pseudo-statiqueLe module WebMVC peut intégrer des paramètres dans l'URL via le mode convention, sans passer de paramètres via ?
, ce qui rend l'URL plus belle ;
Le mode pseudo-statique est désactivé par défaut et doit être activé via les paramètres de configuration : ?
传递参数,让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
_
dans les paramètres de la requête d'URL ; Citez les valeurs des paramètres via UrlParams[index]
Référence des paramètres de la requête :
#------------------------------------- # 约定模式配置参数 #------------------------------------- # 是否开启视图自动渲染(约定优于配置,无需编写控制器代码,直接匹配并执行视图)模式,可选参数,默认值为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=