Inhaltsverzeichnis
Welcome ${user}!
Welcome lavasoft!
Heim Java javaLernprogramm Beispiel für den Betrieb von FreeMarker-Vorlagen basierend auf dem Spring-Framework von Java

Beispiel für den Betrieb von FreeMarker-Vorlagen basierend auf dem Spring-Framework von Java

Jan 05, 2017 pm 01:43 PM

1、通过String来创建模版对象,并执行插值处理

import freemarker.template.Template; 
 
import java.io.OutputStreamWriter; 
import java.io.StringReader; 
import java.util.HashMap; 
import java.util.Map; 
 
/** 
* Freemarker最简单的例子 
* 
* @author leizhimin 11-11-17 上午10:32 
*/
public class Test2 { 
    public static void main(String[] args) throws Exception{ 
        //创建一个模版对象 
        Template t = new Template(null, new StringReader("用户名:${user};URL:  ${url};姓名:  ${name}"), null); 
        //创建插值的Map 
        Map map = new HashMap(); 
        map.put("user", "lavasoft"); 
        map.put("url", "http://www.baidu.com/"); 
        map.put("name", "百度"); 
        //执行插值,并输出到指定的输出流中 
        t.process(map, new OutputStreamWriter(System.out)); 
    } 
}
Nach dem Login kopieren

执行后,控制台输出结果:

用户名:lavasoft;
 
URL:  http://www.baidu.com/;
 
姓名:  百度 
Process finished with exit code 0
Nach dem Login kopieren

2、通过文件来创建模版对象,并执行插值操作

import freemarker.template.Configuration; 
import freemarker.template.Template; 
 
import java.io.File; 
import java.io.OutputStreamWriter; 
import java.util.HashMap; 
import java.util.Map; 
 
/** 
* Freemarker最简单的例子 
* 
* @author leizhimin 11-11-14 下午2:44 
*/
public class Test { 
    private Configuration cfg;      //模版配置对象 
 
    public void init() throws Exception { 
        //初始化FreeMarker配置 
        //创建一个Configuration实例 
        cfg = new Configuration(); 
        //设置FreeMarker的模版文件夹位置 
        cfg.setDirectoryForTemplateLoading(new File("G:\\testprojects\\freemarkertest\\src")); 
    } 
 
    public void process() throws Exception { 
        //构造填充数据的Map 
        Map map = new HashMap(); 
        map.put("user", "lavasoft"); 
        map.put("url", "http://www.baidu.com/"); 
        map.put("name", "百度"); 
        //创建模版对象 
        Template t = cfg.getTemplate("test.ftl"); 
        //在模版上执行插值操作,并输出到制定的输出流中 
        t.process(map, new OutputStreamWriter(System.out)); 
    } 
 
    public static void main(String[] args) throws Exception { 
        Test hf = new Test(); 
        hf.init(); 
        hf.process(); 
    } 
}
Nach dem Login kopieren

创建模版文件test.ftl

<html> 
<head> 
  <title>Welcome!</title> 
</head> 
<body> 
  <h1 id="Welcome-nbsp-user">Welcome ${user}!</h1> 
  <p>Our latest product: 
  <a href="${url}">${name}</a>! 
</body> 
</html>
Nach dem Login kopieren
尊敬的用户你好: 
用户名:${user}; 
URL:  ${url}; 
姓名:  ${name}
Nach dem Login kopieren

执行后,控制台输出结果如下:

<html> 
<head> 
  <title>Welcome!</title> 
</head> 
<body> 
  <h1 id="Welcome-nbsp-lavasoft">Welcome lavasoft!</h1> 
  <p>Our latest product: 
  <a href="http://www.baidu.com/">百度</a>! 
</body> 
</html>
Nach dem Login kopieren

尊敬的用户你好:

用户名:lavasoft; 
URL:  http://www.baidu.com/; 
姓名:  百度 
Process finished with exit code 0
Nach dem Login kopieren

3.基于注解的Spring+freemarker实例
web项目图

Beispiel für den Betrieb von FreeMarker-Vorlagen basierend auf dem Spring-Framework von Java

web.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
 <servlet> 
  <!-- 配置DispatcherServlet -->
  <servlet-name>springmvc</servlet-name> 
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
  <!-- 指定spring mvc配置文件位置 不指定使用默认情况 -->
   <init-param>   
    <param-name>contextConfigLocation</param-name>   
    <param-value>/WEB-INF/springmvc-servlet.xml</param-value> 
    <!--默认:/WEB-INF/<servlet-name>-servlet.xml 
    classpath方式:<param-value>classpath:/spring-xml/*.xml</param-value>   
     -->  
    </init-param> 
  <!-- 设置启动顺序 -->
  <load-on-startup>1</load-on-startup> 
 </servlet> 
 <!-- 配置映射 servlet-name和DispatcherServlet的servlet一致 -->
 <servlet-mapping> 
  <servlet-name>springmvc</servlet-name> 
  <url-pattern>/</url-pattern><!-- 拦截以/所有请求 -->
 </servlet-mapping> 
 <welcome-file-list> 
  <welcome-file>index.jsp</welcome-file> 
 </welcome-file-list> 
</web-app>
Nach dem Login kopieren

springmvc-servlet.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans  
  http://www.springframework.org/schema/beans/spring-beans.xsd 
   http://www.springframework.org/schema/mvc  
   http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
   http://www.springframework.org/schema/aop  
   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
   http://www.springframework.org/schema/context  
   http://www.springframework.org/schema/context/spring-context.xsd"> 
  
   <!-- 默认注解映射支持 -->
   <mvc:annotation-driven/>  
   <!-- 自动扫描包 --> 
   <context:component-scan base-package="com.spring.freemarker" /> 
     
   <!--<context:annotation-config /> 配置自动扫描包配置此配置可省略-->  
   <!--<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" 配置自动扫描包配置此配置可省略/>-->
   <!-- 配置freeMarker的模板路径 -->
   <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> 
    <property name="templateLoaderPath" value="WEB-INF/ftl/" /> 
    <property name="defaultEncoding" value="UTF-8" /> 
   </bean> 
   <!-- freemarker视图解析器 -->
   <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> 
    <property name="suffix" value=".ftl" /> 
    <property name="contentType" value="text/html;charset=UTF-8" /> 
    <!-- 此变量值为pageContext.request, 页面使用方法:rc.contextPath -->
    <property name="requestContextAttribute" value="rc" /> 
   </bean> 
</beans>
Nach dem Login kopieren

FreeMarkerController类

package com.spring.freemarker; 
  
import java.util.ArrayList; 
import java.util.List; 
  
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
  
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 
  
import com.spring.vo.User; 
  
@Controller
@RequestMapping("/home") 
public class FreeMarkerController { 
  
  @RequestMapping("/index") 
  public ModelAndView Add(HttpServletRequest request, HttpServletResponse response) { 
  
    User user = new User(); 
    user.setUsername("zhangsan"); 
    user.setPassword("1234"); 
    List<User> users = new ArrayList<User>(); 
    users.add(user); 
    return new ModelAndView("index", "users", users); 
  } 
  
}
Nach dem Login kopieren

User类

package com.spring.vo; 
  
public class User { 
  
  private String username; 
  private String password; 
  
  public String getUsername() { 
    return username; 
  } 
  
  public void setUsername(String username) { 
    this.username = username; 
  } 
  
  public String getPassword() { 
    return password; 
  } 
  
  public void setPassword(String password) { 
    this.password = password; 
  } 
  
}
Nach dem Login kopieren

index.ftl文件

<!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=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
<#list users as user> 
username : ${user.username}<br/> 
password : ${user.password} 
</#list> 
</body> 
</html>
Nach dem Login kopieren

部署到tomcat,运行:http://localhost:8080/springmvc/home/index
显示结果:

username : zhangsan
password : 1234
Nach dem Login kopieren

更多Beispiel für den Betrieb von FreeMarker-Vorlagen basierend auf dem Spring-Framework von Java相关文章请关注PHP中文网!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden? Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden? Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement? Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement? Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

See all articles