2013-04-12 111 views
0

誰能告訴我如何從JSP文件傳遞值到速度模板。從JSP傳遞值到速度模板

+0

不,它沒有工作 –

+0

@AlokVerma:你有什麼嘗試?從程序員的角度來看,「這不起作用」是一個不好的答案。你應該總是提供細節。 –

回答

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> 

你也可以有一個模板目錄或類似的東西,但我告訴你,當你想與部署web應用程序的模板(例如從WEB-INF目錄加載虛擬機文件) - >這是一個挑戰! ?

與yourproject/example.jsp測試= getparamh加載它,我敢肯定它的工作

但如果你試試這個 - admitdettly - 簡單的例子,它應該工作,你也許可以從中獲得你的目標。

+0

謝謝@Jan Piel,最後我得到的解決方案非常簡單。在將值從JSP傳遞到速度模板之後,我們必須使用與JSP相似的概念。使用set($ value = $ request.getParameter(「Param」))。 Param是傳遞的參數 –