簡體   English   中英

如何在Java類中使用Velocity模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM