即使rewriter
和Link Checker Transformer
沒有工作。我通過使用Transformer
和TransformerFactory
接口來使用自定義LinkRewriter。我基於我的代碼Adobe的樣本。我制定了這樣的事情:
@Component(
metatype = true,
label = "Image Link Rewriter",
description = "Maps the <img> elements src attributes"
)
@Service(value = TransformerFactory.class)
@Property(value = "global", propertyPrivate = true)
public class ImageLinkRewriter implements Transformer, TransformerFactory {
// some variables
public CustomLinkTransformer() { }
@Override
public void init(ProcessingContext context,
ProcessingComponentConfiguration config) throws IOException {
// initializations here
}
@Override
public final Transformer createTransformer() {
return new CustomLinkTransformer();
}
@Override
public void startElement(String uri, String localName,
String qName, Attributes atts) throws SAXException {
if ("img".equalsIgnoreCase(localName)) {
contentHandler.startElement(uri, localName, qName, rewriteImageLink(atts));
}
}
private Attributes rewriteImageLink(Attributes attrs) {
String attrName = "src";
AttributesImpl result = new AttributesImpl(attrs);
String link = attrs.getValue(attrName);
String mappedLink = resource.getResourceResolver().map(request, link);
result.setValue(result.getIndex(attrName), mappedLink);
return result;
}
}
希望這可以幫助別人。這裏有幾個引用:
有你配置/應用/ XXX /配置/重寫的重寫? – santiagozky
@santiagozky不幸的是沒有。我將閱讀如何通過配置重寫器。 – khakiout
@santiagozky我試過了,但沒有發生什麼''元素 – khakiout