标签: velocity

从速度视图页面内调用类方法(静态)

你能从视图页面调用类方法吗?

特别是未传递到视图中的那些?

在asp.net MVC中,我可以这样做:

<%= SomeClass.FixDateFormat(ViewData.Model.SomeClass.DateCreated) %>
Run Code Online (Sandbox Code Playgroud)

java velocity

18
推荐指数
2
解决办法
2万
查看次数

速度和log4J出错

我构建了一个在我的localhost(tomcat)中完美运行的webapp.但是当我尝试部署时,在init()中速度崩溃,让我在这里留下这个奇怪的堆栈跟踪(抱歉大小):


ERROR [main] (VelocityConfigurator.java:62) - Error initializing Velocity!
org.apache.velocity.exception.VelocityException: Failed to initialize an instance of org.apache.velocity.runtime.log.Log4JLogChute with the current runtime configuration.
    at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:206)
    at org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:255)
    at org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:795)
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:250)
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:589)
    at org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:229)
    at org.apache.velocity.app.Velocity.init(Velocity.java:107)
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.initVelocity(VelocityConfigurator.java:57)
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.configure(VelocityConfigurator.java:42)
    at com.webcodei.velociraptor.VelociListener.contextInitialized(VelociListener.java:26)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4336)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) …
Run Code Online (Sandbox Code Playgroud)

java velocity servlets log4j stack-trace

17
推荐指数
2
解决办法
3万
查看次数

Velocity在哪里搜索模板?

我需要在Web应用程序中使用来自Java代码的Velocity(我将其用作邮件模板处理器).

所以,我有一个标准代码:

VelocityEngine ve = new VelocityEngine ();
try {
   ve.init ();
   Template t = ve.getTemplate (templatePath);
   ...   
} catch (Exception e) {
   throw new MailingException (e);
}
Run Code Online (Sandbox Code Playgroud)

这段代码总是抛出ResourceNotFoundException.我应该将模板放在web应用程序(WEB-INF?classpath?etc?)中,我应该如何指定路径(即我应该传递什么templatePath)?

java velocity

17
推荐指数
2
解决办法
2万
查看次数

Velocity无法找到资源

出了点问题,非常令人沮丧.我在velocity的主页上看到,当我运行webapp时,应该设置一些属性.而且我已经做到了,但无论我做什么,我都会遇到同样的错误.
这是我设置道具和使用速度的地方

public class ConfirmationMailGenerator implements MailGenerator {

    private BasicUser user;
    private String htmlTemplate = "HTMLConfirmationMailTemplate.vsl";
    private String plainTemplate = "PlainConfirmationMailTemplate.vsl";

    public ConfirmationMailGenerator(BasicUser user) {
        this.user = user;
    }

    public StringWriter generateHTML() throws Exception {
        Properties props = new Properties();
        props.setProperty("resource.loader", "wepapp");
        props.setProperty("webapp.resource.loader.class", "org.apache.velocity.tools.view.WebappResourceLoader");
        props.setProperty("webapp.resource.loader.path", "/WEB-INF/mailtemplates/");
        VelocityEngine engine = new VelocityEngine(props);
        VelocityContext context = new VelocityContext();

        engine.init();

        Map map = createDataModel();
        context.put("user", map);

        Template template = engine.getTemplate(htmlTemplate);
        StringWriter writer = new StringWriter();
        template.merge(context, writer);

        return writer;
    }
...
}
Run Code Online (Sandbox Code Playgroud)

这些文件当然保存在/ …

java velocity web-applications

17
推荐指数
1
解决办法
5万
查看次数

Velocity和$ foreach.count

我正在使用速度1.7并在foreach循环中我想打印计数.在模板中,我在#foreach/#end部分中有以下字符串:

Count: $foreach.count
Run Code Online (Sandbox Code Playgroud)

并期望在渲染结果中看到类似的东西

Count: 1
...
Count: 2
...
Run Code Online (Sandbox Code Playgroud)

但我所看到的只是:

Count: $foreach.count
...
Count: $foreach.count
...
Run Code Online (Sandbox Code Playgroud)

有什么想法我做错了什么?

java velocity template-engine

17
推荐指数
5
解决办法
4万
查看次数

当我知道u和v组件的速度(numpy 2d数组)时,如何使用python中的绘图程序绘制流线图?

我希望标题本身很清楚,我正在使用分步法,有限差分公式(Navier-Stokes原始变量形式)解决2D盖子驱动腔(方域)问题,我得到了u和v的速度分量.整个领域,没有手动计算流线,是否有一个命令或绘图工具为我做的工作?

我希望这个问题与编程有关,因为我需要一个绘制流线图的工具而不需要明确地计算它们.

我在流 - 涡度NS形式中解决了同样的问题,我只需要采用流函数的等高线图来获得流线型.

我希望工具或绘图仪是一个python库,并且更多可以在fedora中安装(我可以妥协并使用薄荷)而不用大惊小怪!

如果有人指出图书馆和相关命令(会节省很多时间),我将不胜感激

python velocity numpy matplotlib scipy

17
推荐指数
1
解决办法
3万
查看次数

如何使用ClasspathResourceLoader从Velocity模板中#include一个文件

我正在处理一些Java代码,其中Velocity 1.7设置为通过ClasspathResourceLoader检索模板.下面是代码的精简样本.它来自在Jetty服务器上运行的Tapestry Web应用程序.

Java类,模板和要包含的文件都在同一个文件夹"testpackage"中,因此在生成的JAR中它们都在同一个包"testpackage"中.

问题是,如果模板包含

#include("MyInclude.vm")
Run Code Online (Sandbox Code Playgroud)

指令,Velocity找不到"MyInclude.vm",它抛出一个ResourceNotFoundException.

因为在getTemplate的参数中我必须将包名称添加到模板名称,我还尝试在模板内的#include中执行相同的操作:

#include("testpackage/MyInclude.vm")
Run Code Online (Sandbox Code Playgroud)

但唯一的区别是后者可以运行,如果我从Eclipse运行Web应用程序,而前者甚至不能从Eclipse工作.如果我构建,部署JAR并从部署中运行Web应用程序,则两种语法都会失败并出现相同的ResourceNotFoundException.

http://velocity.apache.org/engine/releases/velocity-1.7/user-guide.html#Include上的Velocity文档说:

"出于安全原因,要包含的文件可能只在TEMPLATE_ROOT下"

这肯定可能是我的问题的原因,但我还没有找到任何关于TEMPLATE_ROOT实际上是什么的进一步信息.

这听起来很像环境变量,但我不知道应该将它设置为什么,因为我使用的是ClasspathResourceLoader,并且要包含的文件不是位于文件夹中的实际文件,它位于JAR内部包含模板和Java类(以及所有在同一个包中).

我在另一个问题中找到了TEMPLATE_ROOT,我应该在哪里为使用Maven构建的命令行实用程序放置Velocity模板文件?,但它与使用FileResourceLoader有关.我需要继续使用ClasspathResourceLoader,我需要所有文件都在JAR中,而不是像某些文件夹中的普通文件一样.

TestVelocity.java

package testpackage;

import java.io.StringWriter;
import java.util.Properties;

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

public class TestVelocity
{
  public static String getText()
  {
    String text = "";

    Properties properties = new Properties();

    properties.setProperty("resource.loader", "class");

    properties.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");

    VelocityEngine engine = new VelocityEngine();

    VelocityContext context = new VelocityContext();

    StringWriter writer = new StringWriter();

    try
    {
      engine.init(properties);

      // This works because the template doesn't contain any …
Run Code Online (Sandbox Code Playgroud)

java templates velocity

17
推荐指数
1
解决办法
2万
查看次数

从Apache Velocity模板访问常量值?

是否可以从Velocity模板访问常量值(即Java类中定义的公共静态最终变量)?

我希望能够写出这样的东西:

#if ($a lt Long.MAX_VALUE)
Run Code Online (Sandbox Code Playgroud)

但这显然不是正确的语法.

java velocity

15
推荐指数
2
解决办法
1万
查看次数

使用反斜杠无法正常运行美元符号速度

我有以下段来从速度模板文件中渲染.

xyz $$foo
Run Code Online (Sandbox Code Playgroud)

美元符号需要从VTL解析器中转义.在模板文件中,我将其表示为

xyz \$\$foo
Run Code Online (Sandbox Code Playgroud)

我预计

xyz $$foo
Run Code Online (Sandbox Code Playgroud)

但我明白了

xyz \$foo
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么??

java velocity

15
推荐指数
1
解决办法
1万
查看次数

用java替换word文档模板中的变量

我想加载一个模板word文档来添加内容并保存为新文档.我正在研究.doc文件.

经过长时间的研究,我只找到了docx的解决方案:

http://www.smartjava.org/content/create-complex-word-docx-documents-programatically-docx4j

http://www.sambhashanam.com/mail-merge-in-java-for-microsoft-word-document-part-i/

所以我想替换以这种格式编写的任何变量:$VAR它的值.我可以用velocity或Apache-poi来做,它的最佳解决方案是什么.任何帮助将不胜感激.

java velocity apache-poi

15
推荐指数
2
解决办法
4万
查看次数