该例与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中强大的"智能方法适配功能"