2 Stimmen

SiteMesh: Ändern des Inhaltstyps der Antwort

Ich versuche, einen SiteMesh-Dekorator dazu zu bringen, den Inhaltstyp der Antwort zu ändern, aber ohne Erfolg. Der Content-Type ist immer derselbe wie der der dekorierten JSP und nicht der des Dekorators.

Nehmen wir an, ich habe eine JSP mit dem Header

<%@ page contentType="application/xhtml+xml" %>

Ich habe auch einen SiteMesh Dekorator JSP, der dies definiert:

<%@ page contentType="application/vnd.wap.xhtml+xml" %>

Was ich möchte, ist, dass die dekorierte Antwort den MIME-Typ des Dekorators hat (der tatsächliche MIME-Typ, der hier verwendet wird, ist nicht wichtig, dies dient nur zur Veranschaulichung des Problems).

Ein Blick in den SiteMesh 2.4.1 Quelltext legt nahe, dass das Problem mit der ContentBufferingResponse Klasse, die für die Erfassung der Ausgabe des Ziels verantwortlich ist. Diese überschreibt die setContentType() Methode, die den Wert für die spätere Verwendung aufzeichnet, aber sie ruft auch die super.setContentType() und übergibt damit den Inhaltstyp der Ziel-JSP direkt an die Antwort. Sobald dies geschehen ist, kann kein noch so gutes Zureden die Antwort dazu bringen, etwas anderes zu tun.

Gibt es also eine Lösung für dieses Problem? Kann der Content-Type der Ziel-JSP unterdrückt und stattdessen vom Decorator übernommen werden?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X