FrontController.js
Summary
Contains Forward class.
This is part of Troika.ASP Framework - web development MVC framework for ASP 3.0.
Please visit www.troika-asp.com for more details.
Version: $Revision: 1.4 $
Author: Pavel Chuchev pav@troika-asp.com
|
Class Summary
|
| FrontController |
This is FrontController class - central access point for the requests to the framework. |
FrontController.ACTION_NAME = "cmd";
FrontController.APP_CONFIG = "config";
function FrontController() {
this.process = function () {
var environment = new Environment();
var configStr = environment.application.get(FrontController.APP_CONFIG);
var config = new Config().valueOf(configStr);
Logger.log = new Logger(config);
var requestCtx = createRequestCtx(config, environment);
var appController = new AppController(config, environment);
var responseCtx = appController.handleRequest(requestCtx);
if (responseCtx) {
new Dispatcher(environment).execute(requestCtx, responseCtx);
}
};
function createRequestCtx(config, environment) {
var result = undefined;
var request = environment.request;
var actionItems = request.get(FrontController.ACTION_NAME);
if (!actionItems || !actionItems.size()) {
var session = environment.session;
actionItems = session.get(FrontController.ACTION_NAME);
if (!actionItems || !actionItems.size()) {
throw new Error("'" + FrontController.ACTION_NAME + "' parameter not specified");
}
}
var action = "" + actionItems.get(0);
var cmdMap = config.cmdMaps[action];
if (!cmdMap) {
throw new Error("Action '" + action + "' not found");
}
if (cmdMap.name) {
var reqCtxMapType = config.reqCtxMaps[cmdMap.name];
if (!reqCtxMapType) {
throw new Error("RequestCtx(Form) '" + cmdMap.name + "' not found");
}
result = eval("new " + reqCtxMapType + "()").init(action);
for (var key in result) {
if (typeof (result[key]) == "function") {
continue;
}
var items = request.get(key);
if (items && items.size && items.size() > 0) {
var values = new ArrayList();
for (var i = 0; i < items.size(); i++) {
values.add("" + items.get(i));
}
result[key] = values;
result.action = action;
}
}
}
else {
result = new RequestContext(action);
}
return result;
}
}
www.troika-asp.com
Documentation generated on Sun Jun 15 17:59:32 2008