目次
Welcome ${user}!
Welcome lavasoft!
ホームページ Java &#&チュートリアル JavaのSpringフレームワークをベースにしたFreeMarkerテンプレートの動作例

JavaのSpringフレームワークをベースにしたFreeMarkerテンプレートの動作例

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)); 
    } 
}
ログイン後にコピー

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

用户名:lavasoft;
 
URL:  http://www.baidu.com/;
 
姓名:  百度 
Process finished with exit code 0
ログイン後にコピー

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(); 
    } 
}
ログイン後にコピー

创建模版文件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>
ログイン後にコピー
尊敬的用户你好: 
用户名:${user}; 
URL:  ${url}; 
姓名:  ${name}
ログイン後にコピー

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

<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>
ログイン後にコピー

尊敬的用户你好:

用户名:lavasoft; 
URL:  http://www.baidu.com/; 
姓名:  百度 
Process finished with exit code 0
ログイン後にコピー

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

JavaのSpringフレームワークをベースにしたFreeMarkerテンプレートの動作例

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>
ログイン後にコピー

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>
ログイン後にコピー

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); 
  } 
  
}
ログイン後にコピー

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; 
  } 
  
}
ログイン後にコピー

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>
ログイン後にコピー

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

username : zhangsan
password : 1234
ログイン後にコピー

更多JavaのSpringフレームワークをベースにしたFreeMarkerテンプレートの動作例相关文章请关注PHP中文网!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)