UNPKG

node-web-mvc

Version:
42 lines (41 loc) 1.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const RedirectView_1 = __importDefault(require("../RedirectView")); const InternalResourceView_1 = __importDefault(require("../InternalResourceView")); const IS_REDIRECT = /^redirect:/; const IS_FORWARD = /^forward:/; class UrlBasedViewResolver { /** * 构造一个 UrlBasedViewResolver 视图解析器 * @param prefix 用于拼接在视图名的前缀 * @param suffix 用于追加在视频名后的后缀 */ constructor(prefix = '', suffix = '') { this.prefix = prefix; this.suffix = suffix; } /** * 根据传入的视图与数据来获取对应的视图 * @param {String} viewName 视图名称 * @param {Object} model 视图数据 * @param {HttpServletRequest} request 当前http请求实例 */ resolveViewName(viewName, model, request) { if (IS_REDIRECT.test(viewName)) { return new RedirectView_1.default(viewName.replace(IS_REDIRECT, '')); } else if (IS_FORWARD.test(viewName)) { return new InternalResourceView_1.default(viewName.replace(IS_FORWARD, '')); } // 执行内部匹配,主要用于子类重写用 const name = this.prefix + viewName + this.suffix; return this.internalResolve(name, model, request); } internalResolve(viewName, model, request) { return null; } } exports.default = UrlBasedViewResolver;