Implementieren eines benutzerdefinierten RewriterTransformerFactory

Problem

Links mit „IMG“- und „FORM“-Tags werden nicht neu geschrieben (im Gegensatz zu Links mit „A“-Tags).

Lösung

Um das Neuschreiben zu verbessern, können Sie ein benutzerdefiniertes RewriterTransformerFactory [1] implementieren. Dies ist eine optionale Komponente, die verwendet wird, um den bereits bestehenden Neuschreib-Mechanismus zu erweitern. Ein solcher RewriterTransformerFactory muss eine Transformer [2]-Implementierung ermöglichen, durch die der neu zu schreibende HTML-Code als SAX-Ereignis durchgeht. Um die Implementierung von benutzerdefinierten Rewriter-Transformern zu erleichtern, ist eine AbstractContentHandler [3]-Klasse für die Erweiterung verfügbar, die standardmäßige Implementierungen der Methoden bietet, die in der org.xml.sax.ContentHandler-Schnittstelle genauer beschrieben sind.

Ein Musterbeispiel sieht folgendermaßen aus:

package x.y.z;
import com.day.cq.rewriter.pipeline.AbstractContentHandler;
import com.day.cq.rewriter.pipeline.RewriterTransformerFactory;
import com.day.cq.rewriter.pipeline.Transformer;
/*
*
* @scr.component metatype="no"
* @scr.service
* @scr.property name="service.ranking" value="-100" type="Integer"
*/
public class MyRewriterTransformer extends AbstractContentHandler
               implements RewriterTransformerFactory, Transformer {

  // override startElement method
  public void startElement(String uri, String loc, String raw, Attributes a)
               throws SAXException {

      // implement your custom link rewriting here
  }

  public Transformer createTransformer() {
      return new MyRewriterTransformer();
  }
}

Beachten Sie bitte, dass der Wert des Service-Rankings die Reihenfolge beeinflusst, wenn dieser Transformer ausgelöst wird. Weitere Informationen finden Sie unter [1].

Gilt für

CQ5.2.x

[1] http://dev.day.com/content/docs/v5_2/cq-wcm-javadoc/index.html?com/day/cq/rewriter/pipeline/RewriterTransformerFactory.html


[2] http://dev.day.com/content/docs/v5_2/cq-wcm-javadoc/index.html?com/day/cq/rewriter/pipeline/Transformer.html


[3] http://dev.day.com/content/docs/v5_2/cq-wcm-javadoc/index.html?com/day/cq/rewriter/pipeline/AbstractContentHandler.html

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online