VelocityEngine模板具有空内容

时间:2015-10-02 18:31:21

标签: java xml multithreading velocity

我们已经开始使用VelocityEngine,我们已经看到了一些有线行为。对于我们在速度模板中的每个数据,我们确保它不会为空,如果它为空,至少我们将它设置为空字符串(""),这样就不会发生数据错误。我们也有多年使用的sendEmail()方法,我们知道它工作正常。

然而,对于发送的每封电子邮件,我们开始收到空的电子邮件(根本没有内容)。所以我认为这与加载模板有关。这个代码块将经常与成千上万的用户一起调用。下面是我们用来初始化VE和设置所有数据的代码块。是否存在导致模板为空的错误?还是线程问题?不太确定。感谢您的帮助

 StringWriter writer = new StringWriter();  



VelocityEngine ve = new VelocityEngine();
      ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
      ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
      Template temp= ve.getTemplate("emailTemplate.xml");

  /**
   * Prepare context data
   */
  VelocityContext context = new VelocityContext();

  //Initializing all to empty 

context.put("fullName", "");
    context.put("cFName","");
    context.put("cLName","");
    context.put("cPhone", "");
    context.put("cEmail", "");
    context.put("emailType",0);

context.put("street","");
context.put("city","");
context.put("state","");
context.put("zip","");

context.put("hasCMessage", false);
context.put("numBed", "");


  //Fill the context with the right data if the coming data is not null

context.put("fullName", (client.getFullName()!=null? client.getFullName() :"" ));

 temp.merge(context, writer);

0 个答案:

没有答案