<%-- Created by IntelliJ IDEA. --%>
<%@ page contentTy
PE="text/ht
ML;charset=UTF-8" language="java" %>
<html>
&nbs
p; <head>
<title></title>
</head>
<body>
<%
out.
PRint("hi,todo");
%>
</body>
</html>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
p
ublic class HelloWorld extends HttpServlet {
/**
*
* @par
am request
* @param response
* @t
hrows IOException
* @throws ServletException
*/
@
override public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hi!</title>");
out.println("</head>");
out.println("<body>");
out.println("<
h1>Hello World!!!</h1>");
out.println("</body>");
out.println("</html>");
}
}
在web.
<html>
<head>
<
;meta http-equiv="Content
-type" content="text/html; charset=utf-8">
</head>
<body>
#set( $this = "Velocity")
$this is great! <
br/>
$name <br/>
hi , i am letian
<h1>你好</h1>
</body>
</html>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import
org.
apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEn
gine;
import org.apache.velocity.VelocityContext;
import java.util.Properties;
public class MyVelocity01 extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Properties properties=new Properties();
properties.setProperty("resource.loader", "class");
properties.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
//properties.setProperty("input.encoding", "UTF-8");
//properties.setProperty("output.encoding", "UTF-8");
properties.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8");
properties.setProperty(Velocity.INPUT_ENCODING, "UTF-8");
properties.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8");
VelocityEngine velocityEngine = new VelocityEngine(properties);
VelocityContext context=new VelocityContext();
context.put("name", "test");
StringWriter sw = new StringWriter();
velocityEngine.mergeTemplate("templates/test.vm", "utf-8", context, sw);
//velocityEngine.mergeTemplate("templates/test.vm", "utf-8", context, sw); //这样就会出现两次
out.println(sw.toString());
}
}
velocity是一个基于java的模板引擎,有三种文件加载模板方式: 1、从文件路径加载 2、从类路径(MyVelocity01.java使用该方法) 3、从jar文件加载 开始接触velocity时可能会在加载模板上遇到问题。
如何向模板文件传递变量: 模板本身可以定义变量,例如在test.vm中定义了变量$this,java代码也可以给模板传递变量,例如test.vm中的变量$name便是VelocityContext实例传递过去的。同时velocity也支持迭代对象,例如: 我们在MyVelocity01.java中导入java.util.Vector,将代码:
Vector v = new Vector();
v.addElement("Harry");
v.addElement("John");
String[]
names = {"Harry", "John"};
context.put("names1", v);
context.put("names2", names);
<h1>hello</h1>
#for
each($name in $names1)
$name <br/>
#end
#foreach($name in $names2)
$name <br/>
#end