Velocityインジェクター
import java.util.Map;
import org.apache.velocity.Template;
import com.google.inject.Inject;
public class SampleVelocity implements VelocityLogic{
@Inject public Template _template;
/* (非 Javadoc)
* @see VelocityLogic#merge(java.util.Map)
*/
public void merge(Map<String,Object> map){
try{
String sts = VelocityHelper.createString(this._template,map);
}catch(Exception e){
}
}
}
===============
import org.apache.velocity.Template;
import com.google.inject.Binder;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
/**
* Velocityインジェクター
*/
public final class VelocityInjector{
private VelocityInjector(){}
public static VelocityLogic make(Class<? extends VelocityLogic> cls,String vmname){
Injector injector = Guice.createInjector(new _Module(vmname));
return injector.getInstance(cls);
}
static class _Module implements Module{
private String vmname;
public _Module(String vmname){
this.vmname = vmname;
}
/* (非 Javadoc)
* @see com.google.inject.Module#configure(com.google.inject.Binder)
*/
public void configure(Binder binder){
binder.bind(Template.class).toProvider(new VelocityProvider(this.vmname));
}
}
}
/***** Velocity 実行 *******/
String vmname = "sample.vm"; // テンプレート名
VelocityLogic vlogic = VelocityInjector.make(BeVelocity.class,vmname);
Map<String,Object> map = new HashMap<String,Object>();
vlogic.merge(map);