JAVA velocity 템 플 릿 엔진 사용 실례
테스트 Tomcat
index.jsp 내용 은 다음 과 같 습 니 다.
<%-- Created by IntelliJ IDEA. --%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
</head>
<body>
<%
out.print("hi,todo");
%>
</body>
</html>
Hello World.java 내용 은 다음 과 같 습 니 다.
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
/**
*
* @param request
* @param response
* @throws 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>");
}
}
웹 xml 에 다음 과 같은 내용 을 추가 합 니 다.
<servlet>
<servlet-name>hi</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hi</servlet-name>
<url-pattern>/hi</url-pattern>
</servlet-mapping>
프로젝트 를 실행 하고 있 습 니 다.http://localhost:8080/todo화해시키다http://localhost:8080/todo/hi효 과 를 볼 수 있다.velocity 사용 하기
다음은 velocity 템 플 릿 엔진 을 사용 하여 src 에 디 렉 터 리 templates 를 만 들 고 templates 디 렉 터 리 에 파일 test.vm 을 만 듭 니 다.내용 은 다음 과 같 습 니 다.
<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>
src 디 렉 터 리 에 자바 파일 을 새로 만 듭 니 다.MyVelocity 01.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
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());
}
}
웹.xml:
<!--MyVelocity-->
<servlet>
<servlet-name>ve</servlet-name>
<servlet-class>MyVelocity01</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ve</servlet-name>
<url-pattern>/ve</url-pattern>
</servlet-mapping>
재배 치 설정,브 라 우 저 접근http://localhost:8080/todo/ve에서 효 과 를 볼 수 있 습 니 다.간단 한 소개 velocity
velocity 는 자바 기반 템 플 릿 엔진 으로 세 가지 파일 로 딩 템 플 릿 방식 이 있 습 니 다.1.파일 경로 로 2 를 불 러 오고 클래스 경로(MyVelocity 01.java 에서 이 방법 을 사용 합 니 다)3.jar 파일 로 딩 부터 velocity 에 접촉 할 때 템 플 릿 을 불 러 오 는 데 문제 가 생 길 수 있 습 니 다.
템 플 릿 파일 에 변 수 를 전달 하 는 방법:템 플 릿 자체 가 변 수 를 정의 할 수 있 습 니 다.예 를 들 어 test.vm 에서 변 수 를 정의 할 수 있 습 니 다.자바 코드 는 템 플 릿 에 변 수 를 전달 할 수 있 습 니 다.예 를 들 어 test.vm 의 변 수 는$name 이 바로 Velocity Context 인 스 턴 스 로 전 달 됩 니 다.또한 velocity 도 교체 대상 을 지원 합 니 다.예 를 들 어 저 희 는 MyVelocity 01.자바 에서 자바 util.Vector 를 가 져 와 코드:
context.put("name", "test");
를 다음 과 같이 바 꿉 니 다.
Vector v = new Vector();
v.addElement("Harry");
v.addElement("John");
String[] names = {"Harry", "John"};
context.put("names1", v);
context.put("names2", names);
test.vm 내용 을
<h1>hello</h1>
#foreach($name in $names1)
$name <br/>
#end
#foreach($name in $names2)
$name <br/>
#end
velocity 는 map 용기 도 지원 합 니 다.\#include(")를 사용 하여 정적 템 플 릿 을 도입 하고\#parse("템 플 릿 이름")를 동적 템 플 릿 에 도입 하 는 것 을 지원 합 니 다.자바 MVC 로 사 이 트 를 쓰 려 면 servlet+velocity 를 사용 하 는 것 이 작고 유연 한 선택 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 객체 작성 및 제거 방법정적 공장 방법 정적 공장 방법의 장점 를 반환할 수 있습니다. 정적 공장 방법의 단점 류 공유되거나 보호된 구조기를 포함하지 않으면 이불류화할 수 없음 여러 개의 구조기 파라미터를 만났을 때 구축기를 고려해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.