Just tat dies mit Feder und Geschwindigkeit:
Ich hatte Probleme, Geschwindigkeit zu bekommen abholen meine Event-Handler, am Ende ist es in der Servlet-XML-Datei angeben:
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="WEB-INF/templates"/>
<property name="velocityPropertiesMap">
<map>
<entry key="eventhandler.include.class"><value>com.velocity.events.OptionalIncludeEventHandler</value></entry>
</map>
</property>
</bean>
Es ist einfach nicht akzeptieren würde ich in den Eigenschaften setze Datei - es würde die Klasse instanziiert, aber nicht registriert es als Ereignis Hörer. sehr frustrierend.
Die Klasse selbst ist einfach, eine ganz eklatante Abzocke aus der bestehenden Geschwindigkeitsklasse „org.apache.velocity.app.event.implementIncludeNotFound“. Die vorhandene Velocity-Implementierung prüft das Vorhandensein der Datei und gibt, falls nicht vorhanden, eine konfigurierbare Alternative zurück (Standard: notfound.vm).
Meins ist genau das gleiche, außer es gibt null zurück, wenn die Datei nicht existiert, den Parser verursacht dies überspringen include/parsen Richtlinie:
public class OptionalIncludeEventHandler implements IncludeEventHandler, RuntimeServicesAware {
private RuntimeServices rs;
@Override
public void setRuntimeServices(RuntimeServices rs) {
this.rs = rs;
}
@Override
public String includeEvent(String includeResourcePath, String currentResourcePath, String directiveName) {
return rs.getLoaderNameForResource(includeResourcePath) != null ? includeResourcePath : null;
}
}
Arbeiten wie ein Charme.
Ich hoffe, es ist nützlich.
Danke für die Antwort der org.apache.velocity.app.event.IncludeEventHandler sieht interessant aus, obwohl ein bisschen mehr Mühe, als ich gehofft hatte, :) Es ist auch kompliziert, wie wir die Dateien zusammenführen/Vorlage alle aus ant so Es ist nicht klar, wie ich die neue Implementierung von IncludeEventHandler anschließen werde. Aber ich werde dem nachgehen und meine Ergebnisse veröffentlichen. –