【问题标题】:How is Velocity Template Engine used for View in Java Web Applications?Velocity 模板引擎如何用于 Java Web 应用程序中的视图?
【发布时间】:2014-11-29 20:42:21
【问题描述】:

当你有这个示例代码时:

RequestDispatcher requestDispatcher =  request.getRequestDispatcher("index.jsp");
requestDispatcher.forward(request, response);

你有一个简单的index.jsp 文件,那么Tomcat 会发现这是一个jsp 文件,它会先翻译 成Java 类,然后编译然后执行。 . 这一切都很好。

在此页面中:http://edwin.baculsoft.com/2011/06/beginning-apache-velocity-creating-a-simple-web-application/ 有一个简单的示例/教程,展示了如何使用速度模板引擎来渲染使用速度模板语言的视图。

有一件事我不明白,容器(或jvm?)在哪一步知道它应该使用Velocity模板引擎来解释.vm strong> 文件并正确处理文件?它怎么知道它不是 JSP 文件?仅通过 JSP 文件中的扩展名?

我不是在询问如何将请求转发到.vm 文件。我在问 Velocity Engine 何时以及如何使用我们在请求对象中提供的数据对象从 .vm 文件创建 HTML。为什么 .vm 文件没有像 jsp 文件那样被翻译成 Java 类? Tomcat 如何确定尝试转换为 _jsp.class 文件而不是使用 Velocity 模板引擎是不正确的做法?

【问题讨论】:

    标签: java html jsp servlets velocity


    【解决方案1】:

    这是一个org.apache.velocity.tools.view.servlet.VelocityViewServlet,在映射到它的*.vm 文件上调用。第一个 servlet 充当控制器并分派给第二个 servlet 以呈现视图。

    【讨论】:

      【解决方案2】:

      是的,扩展很重要,用于确定要做什么,但没有什么自动发生的。在您链接到的同一个示例中,您可以在 web.xml 中看到将所有以 .vm 结尾的 URL(即模式为 *.vm)绑定到 Velocity servlet 的配置,该 servlet 是处理模板的那个。然后,使用 RequestDispatcher 通过指定 *.vm URL 将请求从“主”servlet 手动转发到 Velocity servlet。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-19
        • 2023-04-11
        相关资源
        最近更新 更多