velocity官方的examples运行报各种错误

发布于 2021-11-10 19:26:02 字数 4834 浏览 746 评论 6

1. app_example1 是一个通过velocity.properties初始华velocity

 

 import org.apache.velocity.app.Velocity;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.Template;

import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;

import java.io.*;
import java.util.ArrayList;



public class Example
{
    public Example(String templateFile)
    {
        try
        {
            /*
             * setup
             */

            Velocity.init("velocity.properties");


            VelocityContext context = new VelocityContext();
            context.put("list", getNames());


            Template template =  null;

            try
            {
                template = Velocity.getTemplate(templateFile);
            }
            catch( ResourceNotFoundException rnfe )
            {
                System.out.println("Example : error : cannot find template " + templateFile );
            }
            catch( ParseErrorException pee )
            {
                System.out.println("Example : Syntax error in template " + templateFile + ":" + pee );
            }

           

            BufferedWriter writer = writer = new BufferedWriter(
                new OutputStreamWriter(System.out));

            if ( template != null)
                template.merge(context, writer);

        
            writer.flush();
            writer.close();
        }
        catch( Exception e )
        {
            System.out.println(e);
        }
    }

    public ArrayList getNames()
    {
        ArrayList list = new ArrayList();

        list.add("ArrayList element 1");
        list.add("ArrayList element 2");
        list.add("ArrayList element 3");
        list.add("ArrayList element 4");

        return list;
    }

    public static void main(String[] args)
    {
        Example t = new Example("example.vm");
    }
}

 

    运行的错误信息:org.apache.velocity.exception.VelocityException: Error reading properties from 'velocity.properties'

这个问题我解决不了,也不知道是什么问题.

问怎么才能加载velocity.properties

2.app_example2

运行错误信息: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'example2.vm'

import java.io.StringWriter;
import java.util.Properties;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.VelocityContext;

import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.MethodInvocationException;


public class Example2
{
    public static void main( String args[] )
    {
        /* first, we init the runtime engine.  Defaults are fine. */

        try
        {
            Velocity.init();
        }
        catch(Exception e)
        {
            System.out.println("Problem initializing Velocity : " + e );
            return;
        }

        /* lets make a Context and put data into it */

        VelocityContext context = new VelocityContext();

        context.put("name", "Velocity");
        context.put("project", "Jakarta");

        /* lets render a template */

        StringWriter w = new StringWriter();

        try
        {
            Velocity.mergeTemplate("example2.vm", "ISO-8859-1", context, w );
        }
        catch (Exception e )
        {
            System.out.println("Problem merging template : " + e );
        }

        System.out.println(" template : " + w );

       
        String s = "We are using $project $name to render this.";
        w = new StringWriter();

        try
        {
            Velocity.evaluate( context, w, "mystring", s );
        }
        catch( ParseErrorException pee )
        {
          
            System.out.println("ParseErrorException : " + pee );
        }
        catch( MethodInvocationException mee )
        {
         
            System.out.println("MethodInvocationException : " + mee );
        }
        catch( Exception e )
        {
            System.out.println("Exception : " + e );
        }

        System.out.println(" string : " + w );
    }
}

 

 

 

这个问题自己能解决

Properties p=new Properties();
p.setProperty("file.resource.loader.class",
   "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");  
Velocity.init(p);

问默认的file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FilesourceLoader 的模板怎么加载

 

召唤@红薯

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

谁的新欢旧爱 2021-11-17 11:53:22

路径改成这样:   ./src/velocity.properties

瀞厅☆埖开 2021-11-17 11:33:39

FileResourceLoader 装载器的 getTamplate("这里怎么写")

酷到爆炸 2021-11-16 16:26:05

那为什么Properties p=new Properties(); p.setProperty("file.resource.loader.class",    "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); Velocity.init(p); 这里能仿问到啊

青萝楚歌 2021-11-15 20:17:38

vm文件我是和.class文件放一起的

别再吹冷风 2021-11-14 19:59:26

很明显吗 路径不对 找不到

沙与沫 2021-11-13 01:50:47

路径改成这样:   ./src/velocity.properties

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文