[英]How to use Velocity template inside java class
我正在嘗試在Java類中使用速度模板,下面是我的代碼
VelocityEngine ve = new VelocityEngine();
ve.init();
VelocityContext context = new VelocityContext();
context.put("object", someobject);
Template t = ve.getTemplate("template.vm");
StringWriter writer = new StringWriter();
t.merge(context, writer);
代碼拋出在該行找不到的資源
ve.getTemplate(“ template.vm”)
無論我如何給出它沒有走的路。
我應該怎么去那個template.vm
它不在web-inf文件夾中,而是在web目錄中。
我發現問題是屬性設置不正確
Properties velocityProperties = new Properties();
velocityProperties.put("resource.loader", "class");
velocityProperties.put("class.resource.loader.description", "Velocity Classpath Resource Loader");
velocityProperties.put("class.resource.loader.class",
"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
velocityProperties.put("file.resource.loader.class","org.apache.velocity.runtime.resource.loader.FileResourceLoader");
velocityProperties.put("file.resource.loader.path","/");
velocityProperties.put("file.resource.loader.cache","false");
ve.init(velocityProperties
一旦我把它放進去,我就在拿起我的模板。
);
在您的應用程序conf xml中,您必須指定bean和模板的位置,以及模板的擴展名。 就我而言:
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/views/" />
</bean>
<!-- View resolvers can also be configured with ResourceBundles or XML files.
If you need different view resolving based on Locale, you have to use the
resource bundle resolver. -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true" />
<property name="prefix" value="" />
<property name="suffix" value=".vm" />
<property name="toolboxConfigLocation" value="/WEB-INF/velocity-toolbox.xml" />
</bean>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.