谁能告诉我如何将值从 JSP 文件传递到速度模板。
问问题
2024 次
1 回答
0
也许你应该尝试让一些简单的工作。考虑一个简单的动态 Web 项目,其 jsp 如下所示:
<%@page import="java.io.File"%>
<%@page import="org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"%>
<%@page import="org.apache.velocity.runtime.RuntimeConstants"%>
<%@page import="java.io.StringWriter"%>
<%@page import="org.apache.velocity.VelocityContext"%>
<%@page import="org.apache.velocity.Template"%>
<%@page import="org.apache.velocity.app.VelocityEngine"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
String s = request.getParameter("test");
VelocityEngine velocityEngine = new VelocityEngine();
velocityEngine.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, "/");
velocityEngine.init();
Template t = velocityEngine.getTemplate("/template.vm");
VelocityContext context = new VelocityContext();
context.put("example",
s);
StringWriter w = new StringWriter();
t.merge(context, w);
%>
<p><%out.println(w.getBuffer().toString()); %> </p>
</body>
</html>
它只是从您的服务器的根目录加载一个模板,并使用 GET/POST 参数在当前站点中将其打印出来。
在项目的 WEB-INF/lib 文件夹中,放置velocity.jar、common-collections.jar 和common-lang.jar。重要提示:在您的服务器根目录中,您可以使用以下模板放置一个简单的文本文件 template.vm
<b>Test $example<b>
你也可以有一个模板目录或类似的东西,但我会告诉你什么时候你想用 webapp 部署你的模板(例如从 WEB-INF 目录加载 vm-files)-> 这是一个挑战!
用 yourproject/example.jsp?test=getparamh 加载它,我确信它可以工作
但是,如果你尝试这个 - 承认 - 简单的例子,它应该可以工作,你也许可以从中得出你的目标。
于 2013-04-12T08:11:57.923 回答