node-web-mvc
Version:
node spring mvc
42 lines (41 loc) • 1.59 kB
JavaScript
;
/**
* @module BeanNameUrlHandlerMapping
* @description 用于httprequest类型请求
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ResourceHttpRequestHandler_1 = __importDefault(require("../resources/ResourceHttpRequestHandler"));
const AbstractHandlerMapping_1 = __importDefault(require("./AbstractHandlerMapping"));
class BeanNameUrlHandlerMapping extends AbstractHandlerMapping_1.default {
constructor(registry, resource) {
super();
this.registry = registry;
this.resource = resource;
this.setDefaultHandler(null);
}
getHandlerInternal(context) {
const request = context.request;
const registrations = this.registry.registrations;
const lookupPath = this.initLookupPath(request);
for (const registration of registrations) {
if (this.match(registration, lookupPath, request)) {
return new ResourceHttpRequestHandler_1.default(registration, this.resource);
}
}
}
match(mapping, path, request) {
const pathPatterns = mapping.pathPatterns;
const matcher = this.pathMatcher;
for (const pattern of pathPatterns) {
const result = matcher.matchPattern(pattern, path);
// 如果当前路由匹配成功
if (result) {
return true;
}
}
}
}
exports.default = BeanNameUrlHandlerMapping;