[JAVA] Bis Sie den Apache Velocity-Beispielcode ausführen

Bis Sie den Apache Velocity-Beispielcode ausführen

Ich werde es als Memo für mich selbst schreiben. Ich habe es geschafft, weil ich wollte, dass eine Umgebung das Verhalten von Velocity beim Lesen der offiziellen Website überprüft.

Dinge notwendig

Vollständiger Quellcode

Dies ist ein Git-Repository mit einem Satz Quellcode, der mit dem folgenden Verfahren erstellt wurde. https://github.com/vicboss1002/velocity_sample

Verfahren

  1. Installieren Sie Tomcat
  2. Legen Sie Tomcat in Eclipse als Server fest
  3. Erstellen Sie ein Maevn-Projekt in Eclipse
  4. Laden Sie abhängige Bibliotheken mit Maven herunter
  5. Zeigen Sie die Velocity-Vorlagendatei im Browser an
  6. Übergeben Sie Variablen von Java zur Anzeige an den Velocity-Kontext

Installieren Sie Tomcat

Ich habe ** 32-Bit / 64-Bit Windows Service Installer ** von der folgenden Site heruntergeladen und installiert. https://tomcat.apache.org/download-90.cgi image.png

Richten Sie Tomcat in Eclipse als Server ein

  1. Öffnen Sie ** Fenster> Einstellungen> Server> Laufzeitumgebung ** image.png image.png

Erstellen Sie ein Maven-Projekt in Eclipse

  1. Wählen Sie ** Datei> Neu> Maven-Projekt ** image.png
  2. Wählen Sie maven-archetype-webapp in ** Wählen Sie einen Archetyp aus ** image.png
  3. Geben Sie ** GroupId **, ** ArtifactId ** an, um ein Maven-Projekt zu erstellen image.png image.png

Laden Sie abhängige Bibliotheken mit Maven herunter

  1. Geben Sie in ** pom.xml ** Folgendes für die abhängige Bibliothek an

pom.xml


<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<version>4.0.0</version>
</dependency>
<dependency>
	<groupId>org.apache.velocity.tools</groupId>
	<artifactId>velocity-tools-generic</artifactId>
	<version>3.0</version>
</dependency>
<dependency>
	<groupId>org.apache.velocity.tools</groupId>
	<artifactId>velocity-tools-view</artifactId>
	<version>3.0</version>
</dependency>
<dependency>
	<groupId>org.apache.velocity.tools</groupId>
	<artifactId>velocity-tools-view-jsp</artifactId>
	<version>3.0</version>
</dependency>
<dependency>
	<groupId>com.republicate</groupId>
	<artifactId>webapp-slf4j-logger</artifactId>
	<version>1.3</version>
</dependency>
  1. Führen Sie ** Project> Run As> Maven Build ** aus image.png image.png

Anzeige der Velocity-Vorlagendatei im Browser

  1. Fügen Sie web.xml ** VelocityViewServlet ** -Einstellungen hinzu Fügen Sie die Einstellungen für ** VelocityViewServlet ** zu web.xml hinzu, basierend auf der Beschreibung in hier.

web.xml


<!--Protokollausgabeeinstellungen-->
<context-param>
	<param-name>webapp-slf4j-logger.level</param-name>
	<param-value>debug</param-value>
</context-param>
<context-param>
	<param-name>webapp-slf4j-logger.format</param-name>
	<param-value>%logger [%level] [%ip] %message</param-value>
</context-param>
<servlet>
	<servlet-name>velocity</servlet-name>
	<servlet-class>
		org.apache.velocity.tools.view.VelocityViewServlet
	</servlet-class>

	<!-- Unless you plan to put your tools.xml and velocity.properties under 
		different folders or give them different names, then these two init-params 
		are unnecessary. The VelocityViewServlet will automatically look for these 
		files in the following locations. -->
	<init-param> 
		<param-name>org.apache.velocity.toolbox</param-name> 
		<param-value>/WEB-INF/tools.xml</param-value> 
	</init-param> 
	<init-param> 
		<param-name>org.apache.velocity.properties</param-name> 
		<param-value>/WEB-INF/velocity.properties</param-value> 
	</init-param>
</servlet>

<!-- Map *.vm files to Velocity -->
<servlet-mapping>
	<servlet-name>velocity</servlet-name>
	<url-pattern>*.vm</url-pattern>
</servlet-mapping>
  1. Erstellen Sie eine Vorlagendatei direkt unter ** Projektstamm> src ** image.png

sample.vm


#set($text = "Velocity World!")
Hello $text
  1. Starten Sie Tomcat in der Ansicht ** Server ** von Eclipse image.png

  2. ** sample.vm ** über den Browser anzeigen und bestätigen Geben Sie "http: // localhost: 8080 / speed_sample / sample.vm" in die URL des Browsers ein, um es anzuzeigen. image.png

Das ist es. Es wurde bestätigt, dass der in ** sample.vm ** beschriebene Geschwindigkeitsprozess ausgeführt wurde und der Inhalt angezeigt wurde.

Übergeben Sie Variablen von Java an den Velocity-Kontext zur Anzeige

  1. Erstellen Sie eine Unterklasse von "VelictyViewServlet".

MyVelocityViewServlet.java


public class MyVelocityViewServlet extends VelocityViewServlet {
	private static final long serialVersionUID = 1L;
    protected Template handleRequest(HttpServletRequest request,
            HttpServletResponse response,
            Context ctx)
	{

    	ctx.put("boolTrue", true);
    	ctx.put("boolFalse", false);
    	ctx.put("number", 1234);
    	ctx.put("string", "abcd");
    	ctx.put("list", Arrays.asList("a", "b", "c", "d"));
    	
    	Map<String, String> map = new HashMap<>();
    	map.put("key1", "value1");
    	map.put("key2", "value2");
    	ctx.put("map", map);
    	return super.handleRequest(request, response, ctx);
	}
}
  1. Schreiben Sie web.xml für die Unterklasse "VelictyViewServlet" wie folgt um:

web.xml


<servlet>
	<servlet-name>velocity</servlet-name>
<!-- 		<servlet-class> -->
<!-- 			org.apache.velocity.tools.view.VelocityViewServlet -->
<!-- 		</servlet-class> -->
	<servlet-class>velocity_sample.MyVelocityViewServlet</servlet-class>

	<!-- Unless you plan to put your tools.xml and velocity.properties under 
		different folders or give them different names, then these two init-params 
		are unnecessary. The VelocityViewServlet will automatically look for these 
		files in the following locations. -->
	<init-param>
		<param-name>org.apache.velocity.toolbox</param-name>
		<param-value>/WEB-INF/tools.xml</param-value>
	</init-param>
	<init-param>
		<param-name>org.apache.velocity.properties</param-name>
		<param-value>/WEB-INF/velocity.properties</param-value>
	</init-param>
</servlet>
  1. Erstellen Sie eine Vorlagendatei, die die von Java festgelegten Variablen aufruft

sample_of_context.vm


\${boolTrue}: ${boolTrue}<br/>
\${boolFalse}: ${boolFalse}<br/>
\${number}: ${number}<br/>
\${string}: ${string}<br/>
\${list}: ${list}<br/>
\${map}: ${map}<br/>

Die Ausgabe ist wie folgt. image.png

Recommended Posts

Bis Sie den Apache Velocity-Beispielcode ausführen
Bis Sie Apache mit Ubuntu auf Docker ausführen
Apache Beam Beispielcode
Bis der Code ausgeführt wird
Bis Sie Hello World of JavaFX mit VSCode + Gradle ausführen
Bis Sie ein Java-Programm mit dem für Windows lokalen AWS SDK ausführen
Verwenden Sie Vorlagen für den Klassenpfad mit Apache Velocity
Bis Sie mruby in Ihrem Browser ausführen (WebAssembly)
Java-Beispielcode 02
Java-Beispielcode 03
Java-Beispielcode 04
Java-Beispielcode 01
Bis ich versuche, Apache Kafka mit Docker-Image auszuführen
Bis das Google Assistant-Beispiel auf Android Things ausgeführt wird