该例与Velocity模板的不同点在于,我们可以在Velocity中植入自定义的逻辑代码,如:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> #outputPageHead() </head> <body> #interceptor("spring:velocityInterceptor#outputText") </body> </html>
其中#interceptor为默认的表达式,据此调用自定义逻辑代码。
根据默认的调用规则,该处将自动调用spring中的VelocityInterceptor类的outputText方法:
package com.bstek.dorado.sample.basic; import java.io.Writer; import org.springframework.stereotype.Component; @Component public class VelocityInterceptor { public void outputText(Writer writer) throws Exception { writer.append("This line is outputted by VelocityInterceptor."); } }
该处#interceptor处理机制也支持dorado中强大的"智能方法适配功能"