任何人都可以告诉我如何将值从JSP文件传递到速度模板。
答案 0 :(得分: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>
<%@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文件) - &gt;这是一个挑战!
使用yourproject / example.jsp?test = getparamh加载它,我确信它可以正常工作
但是如果你尝试这个 - admitdettly - 简单的例子,它应该可以工作,你可以从中获得你的目标。