String outputKey = parameters.getParameter("output-attribute", null);
Map resultMap = new HashMap();
Object success = null;
// Get a ServerPagesGenerator
ServerPagesGenerator generator = (ServerPagesGenerator)this.generatorHandler.get();
// Generator ouptut, if output-attribute was given
XMLByteStreamCompiler compiler = null;
try {
generator.setLogger(getLogger());
generator.compose(this.manager);
generator.setup(resolver, objectModel, source, parameters);
// Setup generator output
if (outputKey == null) {
// discard output to a "black hole"
generator.setConsumer(new AbstractXMLConsumer() { } ); // Make the abstract class instanciable
} else {
// store output in a byte stream
compiler = new XMLByteStreamCompiler();
generator.setConsumer(compiler);
}
// Augment the object model for the "action" logicsheet
objectModel.put(REDIRECTOR_OBJECT, redirector);
objectModel.put(ACTION_RESULT_OBJECT, resultMap);
// Let the XSP do it's stuff
generator.generate();
success = objectModel.get(ACTION_SUCCESS_OBJECT);
} catch (Exception e) {
getLogger().warn("serverpage error", e);
throw e;