Je vais l'écrire comme mémo pour moi-même. Je l'ai fait parce que je voulais un environnement pour vérifier le comportement de Velocity en lisant le site officiel.
--Tomcat 9 (conteneur de serviteur) --Eclipse (environnement de développement intégré)
Il s'agit d'un référentiel Git avec un ensemble de code source créé par la procédure suivante. https://github.com/vicboss1002/velocity_sample
J'ai téléchargé et installé ** Windows Service Installer 32 bits / 64 bits ** à partir du site suivant. https://tomcat.apache.org/download-90.cgi
maven-archetype-webapp
dans ** Sélectionnez un archétype **
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>
web.xml
<!--Paramètres de sortie du journal-->
<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>
sample.vm
#set($text = "Velocity World!")
Hello $text
Lancez Tomcat à partir de la vue ** Serveurs ** d'Eclipse
Affichez et confirmez ** sample.vm ** via le navigateur
Entrez http: // localhost: 8080 / velocity_sample / sample.vm
dans l'URL du navigateur pour l'afficher.
C'est tout. Il a été confirmé que le processus Velocity décrit dans ** sample.vm ** avait été exécuté et que le contenu était affiché.
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);
}
}
VelictyViewServlet
comme suit: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>
sample_of_context.vm
\${boolTrue}: ${boolTrue}<br/>
\${boolFalse}: ${boolFalse}<br/>
\${number}: ${number}<br/>
\${string}: ${string}<br/>
\${list}: ${list}<br/>
\${map}: ${map}<br/>
La sortie est la suivante.
Recommended Posts