freemarker集成maven的简单的应用

freemarker的使用(一) freemarker是比JSP更加轻量和快速的模板语言 阅读详情


1.创建本地maven项目 ,在pom.xml中配置freemarker的架包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn</groupId>
  <artifactId>fmarker</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
  <dependencies>
  	<!-- freemarker的架包 -->
  	<dependency>
  		 <groupId>org.freemarker</groupId>
 		 <artifactId>freemarker</artifactId>
 		 <version>2.3.23</version>
 	</dependency>
 	
  </dependencies>
</project>

2.在webapp的web-inf下的web.xml中配置freemarker的服务

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>fmarker</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  <servlet-name>freemarker</servlet-name>
  <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
    
  <!-- 模板的查找路径  从上下文根路径查找 模板 ftl-->
  <init-param>
    <param-name>TemplatePath</param-name>
    <param-value>/</param-value>
  </init-param>
  <!-- 是否不需要缓存 -->
  <init-param>
    <param-name>NoCache</param-name>
    <param-value>true</param-value>
  </init-param>
  <!-- 最终显示是html -->
  <init-param>
    <param-name>ContentType</param-name>
    <param-value>text/html;charset=UTF-8</param-value>
  </init-param>
    
  <!-- FreeMarker settings: -->
  <init-param>
    <param-name>template_update_delay</param-name>
    <param-value>0</param-value> <!-- 0 is for development only! Use higher value otherwise. -->
  </init-param>
  <init-param>
    <param-name>default_encoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
  <!-- 数字的格式 -->
  <init-param>
    <param-name>number_format</param-name>
    <param-value>0.##</param-value>
  </init-param>
  <!-- servlet 容器启动时实例化 -->
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>freemarker</servlet-name>
  <url-pattern>*.ftl</url-pattern>
</servlet-mapping> 
</web-app>


3.在webapp创建一个ftl文件,运行后可以直接在浏览器上输入它的路径

<#list 1..10 as i>
<#if (i_index+1)%2==0>
	<font color=red>${i}</font><br/>
	<#else>
	<font color=green>${i}</font><br/>
</#if>	
</#list>

4.应用maven ,在数据库创建一张表用来存储,以新闻发布为例 ,新闻的标题 ,内容 ,HTML路径 ,发布时间


4.创建新闻后端上传项目 ,在pom.xml中配置架包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn</groupId>
  <artifactId>news</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
  	<!-- 数据库的架包 -->
  	<dependency>
  		<groupId>mysql</groupId>
  		<artifactId>mysql-connector-java</artifactId>
  		<version>5.1.26</version>
  	</dependency>
  	<!-- freemarker的架包 -->
  <dependency>
  	<groupId>org.freemarker</groupId>
	<artifactId>freemarker</artifactId>
 	 <version>2.3.23</version>
  </dependency>
 
  </dependencies>
  <!-- 设置字符集 -->
  <build>
  <plugins>
  	<plugin>
  		<groupId>org.codehaus.mojo</groupId>
  			<artifactId>tomcat-maven-plugin</artifactId>
  			<version>1.1</version>
  			<configuration>
  			<uriEncoding>UTF-8</uriEncoding>
  		</configuration>
  	</plugin>
  </plugins>
  </build>
</project>


5.在src/main/resources中配置数据的资源文件 .properties

url=jdbc:mysql://localhost:3306/news
drclass=com.mysql.jdbc.Driver
userName=root
password=123456

6.配置调用数据源的方法

package model;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;



public class Dbuit {
	static Properties p = new Properties();
	static{
		
		InputStream is = Dbuit.class.getResourceAsStream("/jdbc.properties");
		try {
			p.load(is);
		} catch (IOException e) {
			
			e.printStackTrace();
		}
	}
/*获取链接
 * @return
 * 
 */
	public static Connection getConnection() throws Exception{
		String url=p.getProperty("url");
		String drclass=p.getProperty("drclass");
		String userName=p.getProperty("userName");
		String password=p.getProperty("password");
		Class.forName(drclass);
		//登录成功
		Connection conn = DriverManager.getConnection(url,userName,password);
		
		return conn;
	}
	//执行sql语句
	public static int execute(String sql) throws Exception{
		//连接数据库
		Connection con=getConnection();
		//预编译SQL语句
		PreparedStatement pst=con.prepareStatement(sql);
		//执行SQL语句
		int i=pst.executeUpdate();
		con.close();
		pst.close();
		return i;
		
	}
	//查询
	public static List<Map> query(String sql) throws Exception{
		
		//连接数据库
		Connection con=getConnection();
		//预编译SQL语句
		PreparedStatement pst=con.prepareStatement(sql);
		//执行SQL语句
		ResultSet rs=pst.executeQuery();
		//获取列名
		ResultSetMetaData remd =rs.getMetaData();
		List list=new ArrayList();
		//获取列的个数
		int columnCount =remd.getColumnCount();
	
		while(rs.next()){
			Map map= new HashMap();
			for(int i=1;i<=columnCount;i++){
				//获取列名
				String colName=remd.getColumnName(i);
				//获取列值
				String colValue=rs.getString(i);
				map.put(colName, colValue);
			}
			list.add(map);
		}
		con.close();
		pst.close();
		rs.close();
		return list;
		
	}
	
	
}




7.创建新闻上传,查询的方法


package model;

import java.util.List;
import java.util.Map;

public class Mynews {
	//发布新闻
	public void inserNews(String title,String content,String newspath,String createtime) throws Exception{
		String sql="insert into mynews(title,content,htmlpath,createtime)values('"+title+"','"+content+"','"+newspath+"','"+createtime+"')";
		Dbuit.execute(sql);
	}
	//查询新闻
	public List<Map> queryNews() throws Exception{
		String sql="select * from mynews";
		 return Dbuit.query(sql);
	
	}
	
}


8.创建上传新闻的页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body align="center">
	<h1><font color=blue>新闻发布</font></h1>
	<form action="News" method="post">
	
	标题:<input type="text" name="title"/><br/>
	内容:<textarea rows="20" cols="100" name="content"></textarea><br/>
	<input type="submit">
	</form>
</body>
</html>

9.controller层servlet的调用

package controller;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import model.Mynews;

/**
 * Servlet implementation class News
 */
public class News extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public News() {
        // TODO Auto-generated constructor stub
    }
    //调用插入,查询的方法
    Mynews my= new Mynews();
    //设计时间格式
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //生成静态HTML存储的位置
    public static final String HTML_DIR="E:\\html";
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置字符集
		response.setContentType("text/html;charset=UTF-8");
		request.setCharacterEncoding("UTF-8");
		//获取新闻的标题
		String title=request.getParameter("title");
		//获取新闻的内容
		String content=request.getParameter("content");
		//获取时间
		Date date= new Date();
		String dates=sdf.format(date);
		//获取唯一的UUID
		String uuid=UUID.randomUUID().toString();
		try {
		
			//生成HTML
		Configuration config=new Configuration(Configuration.VERSION_2_3_23);  
			//模板文件的位置
        config.setDirectoryForTemplateLoading(new File("src/main/resources"));  
        config.setObjectWrapper(new DefaultObjectWrapper(Configuration.VERSION_2_3_23));
        //把值注入HTML
        Map root = new HashMap();
        root.put("title", title);
        root.put("content", content);
        root.put("createtime", dates);
        ////加载模板文件  -- 实例化模板对象
        Template temp =config.getTemplate("news.ftl");
       //文件的保存路径
		String sa=HTML_DIR+"/"+(uuid)+".html";
        Writer out =new OutputStreamWriter(new FileOutputStream(sa));  
        //文件的输出
        temp.process(root, out);  
        out.flush(); 
        out.close();
        //新闻上传到数据库
		my.inserNews(title, content, (uuid) + ".html", dates);
		response.getWriter().println("发布成功...");
		} catch (Exception e) {
			
			e.printStackTrace();
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response);
	}

}


10.新闻的模板

<div style="text-align:center;"><h1><font color=red>${title}</font><br/></h1></div>
  ${createtime}<br/>
  ${content}
  


11.创建前端freemarker项目,在本地pom.xml中配置依赖的架包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn</groupId>
  <artifactId>new</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
  	<!-- 配置数据库的架包 -->
  	<dependency>
  		<groupId>mysql</groupId>
  		<artifactId>mysql-connector-java</artifactId>
  		<version>5.1.26</version>
  	</dependency>
  	<!-- 配置freemarker的架包 -->
  <dependency>
	  <groupId>org.freemarker</groupId>
	  <artifactId>freemarker</artifactId>
	  <version>2.3.23</version>
  </dependency>
  <!-- 配置commons-io的架包 -->
  <dependency>
 	 <groupId>org.apache.commons</groupId>
 	 <artifactId>commons-io</artifactId>
 	 <version>1.3.2</version>
</dependency>
  </dependencies>
  <!-- 设置字符集 -->
  <build>
  <plugins>
  	<plugin>
  		<groupId>org.codehaus.mojo</groupId>
  		<artifactId>tomcat-maven-plugin</artifactId>
  		<version>1.1</version>
  		<configuration>
  		<uriEncoding>UTF-8</uriEncoding>
  		</configuration>
  	</plugin>
  </plugins>
  </build>
</project>

12.配置连接数据库的四要素,在src/main/resources中创建 .properties文件

url=jdbc:mysql://localhost:3306/news
drclass=com.mysql.jdbc.Driver
userName=root
password=123456
13.调用封装jdbc的方法类
package model;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;



public class Dbuit {
	static Properties p = new Properties();
	static{
		
		InputStream is = Dbuit.class.getResourceAsStream("/jdbc.properties");
		try {
			p.load(is);
		} catch (IOException e) {
			
			e.printStackTrace();
		}
	}
/*获取链接
 * @return
 * 
 */
	public static Connection getConnection() throws Exception{
		String url=p.getProperty("url");
		String drclass=p.getProperty("drclass");
		String userName=p.getProperty("userName");
		String password=p.getProperty("password");
		Class.forName(drclass);
		//登录成功
		Connection conn = DriverManager.getConnection(url,userName,password);
		
		return conn;
	}
	
	//执行sql
	public static int execute(String sql) throws Exception{
		//连接数据库
		Connection con=getConnection();
		//预编译SQL语句
		PreparedStatement pst=con.prepareStatement(sql);
		//执行SQL语句
		int i=pst.executeUpdate();
		con.close();
		pst.close();
		return i;
		
	}
	//查询
	public static List<Map> query(String sql) throws Exception{
		
		//连接数据库
		Connection con=getConnection();
		//预编译SQL语句
		PreparedStatement pst=con.prepareStatement(sql);
		//执行SQL语句
		ResultSet rs=pst.executeQuery();
		//获取列名
		ResultSetMetaData remd =rs.getMetaData();
		List list=new ArrayList();
		//获取列的个数
		int columnCount =remd.getColumnCount();
	
		while(rs.next()){
			Map map= new HashMap();
			for(int i=1;i<=columnCount;i++){
				//获取列名
				String colName=remd.getColumnName(i);
				//获取列值
				String colValue=rs.getString(i);
				map.put(colName, colValue);
			}
			list.add(map);
		}
		con.close();
		pst.close();
		rs.close();
		return list;
		
	}
	
	
}

14.创建查询新闻的方法

package model;

import java.util.List;
import java.util.Map;

public class Mynews {
	
	//查询
	public List<Map> queryNews() throws Exception{
		String sql="select * from mynews";
		 return Dbuit.query(sql);
	
	}
	
}



15.刷新新闻页面

package main;

import java.util.Timer;

public class Index {
	public static void main(String[] args) {
		Timer ti= new Timer();
		//new执行任务,执行时间,执行第一次之后多少时间之后执行下一次
		ti.schedule(new MyTimerTask(), 1000,5000);
	}
}


16.生成前端模板

<#list List as new>
<#-- 首页显示新闻的连接与标题-->
<a href="new?path=${new.htmlpath}">${new.title}</a><br/>
</#list>


17.生成前端首页

package main;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TimerTask;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import model.Mynews;

public class MyTimerTask extends TimerTask{
	//调用查询的方法
	Mynews my= new Mynews();

	public void run(){
		try {
			// 生成html
			Configuration cfg = new Configuration(Configuration.VERSION_2_3_23);
			//模板文件的位置
			cfg.setDirectoryForTemplateLoading(new File("src/main/resources"));
			cfg.setObjectWrapper(new DefaultObjectWrapper(Configuration.VERSION_2_3_23));
			//获取所有的新闻
			List<Map> result=my.queryNews();
			Map root = new HashMap();
			root.put("List", result);
			  //加载模板文件  -- 实例化模板对象
			Template temp = cfg.getTemplate("index.ftl");
			//生成首页页面的位置
			String saveFile =  "src/main/webapp/index.html";
			//写入内容
			Writer out = new OutputStreamWriter(new FileOutputStream(saveFile));
			temp.process(root, out);
			out.flush();
			out.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
18. 读取新闻的内容

package main;

import java.io.File;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;

/**
 * Servlet implementation class NewServler
 */
public class NewServler extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public NewServler() {
        // TODO Auto-generated constructor stub
    }
    //新闻存储的位置
    public static final String HTML_DIR = "E:\\html\\";
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//获取模板传过来的连接路径
		String path=request.getParameter("path");
		//完整的文件存储路径
		String abs=HTML_DIR+path;
		//读取存储的新闻内容
		byte[] bt=FileUtils.readFileToByteArray(new File(abs));
		//输出到首页连接
		response.getOutputStream().write(bt);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}


19.启动后台发布新闻项目,在运行前台新闻首页




Spring MVC+Maven+Freemarker+Mybatis开发环境搭建 利用STS(Spring Tool Suite)开发工具可以很方便的创建一个基于Maven的Spring MVC工程项目。然后再分别集成Freemarker以及Mybatis。 STS官网下载地址:点此下载Spring Tool Suite 运行STS后, 设置下工作空间的默认编码方式为UTF-8,Window->Preferences->General->Workspace。 配置下JRE 阅读详情

相关推荐

Jenkins中文显示不全?三步搞定Locale插件+汉化包的正确安装姿势

本文针对Jenkins界面中文显示不全问题,提供从原理到实战的深度解决方案。文章详细解析了Locale插件与中文语言包的核心机制,并分步指导如何通过配置JVM环境、正确安装插件及执行深度排查,彻底解决汉化顽疾,实现Jenkins界面的完美中文显示。

weixin_42611310的博客 259

Maven构建Freemarker

说明 Freemarker入门,使用Maven构建 正文 1.创建maven项目,在pom.xml中添加freemarker依赖 dependencies> dependency> groupId>org.freemarkergroupId> artifactId>freemarkerartifactId> version>2

wds的博客 2864

【UE5】UE5 Dedicated Server专用服务器与网络同步

这篇文章是个人在学习UE4的网络同步方面的内容的一些记录,因为UE5出来了,顺带也一起熟悉熟悉UE5,所以也就直接使用UE5来实践了。说句实在话,UE4网络同步这块确实挺难的,我自己在网上搜索的博客的内容要么停留在很浅层面只搭建一个ds服务器,要么就直接深入源码去剖析UE4的网络机制,处在中间层面的内容少之又少,不得不自己好一阵研究,强烈推荐这几位博主的博文,我在学习的过程中也从中受益匪浅。 Ken_An、风蚀之月、 刘东无敌还有我师傅推荐给我的一本关于UE4网络的PDF。 一、什么是Dedicated

Goulandis 3万+

org.freemarker 在maven中无法下载问题

   今天搭建jfinal框架时添加下载 &lt;!--FreeMarker--&gt; &lt;dependency&gt; &lt;groupId&gt;org.freemarker&lt;/groupId&gt; &lt;artifactId&gt;freemarker&lt;/artifactId&gt; &lt;version&gt;2.3.2

qq_38689769的博客 4173

解决Docker拉取镜像报错:Get https://registry-1.docker.io/v2/: 报错

解决Docker拉取镜像报错: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection问题描述Get "https://registry-1.docker.io/v2/"是docker官方的镜像源,下载很慢的,一般会自己指定国内映射的加速镜像源。

qq_33650333的博客 4172

手把手教你学Simulink——基于多能互补微电网系统的建模与优化场景实例:风柴储联合供电系统在孤岛模式下的功率分配建模

本文介绍了使用MATLAB/Simulink和Simscape Electrical构建风柴储联合供电系统的建模方法。系统包含风力发电、柴油发电、储能电池等模块,重点研究孤岛模式下功率分配策略。详细说明了从创建项目、添加模块到搭建风力发电系统(含MPPT控制)、柴油发电系统及集成各模块的全过程,并提供了仿真参数设置建议。通过分析频率偏差、电池SOC等关键指标,验证了系统在维持稳定运行的同时能有效利用可再生能源。该模型为研究多能互补微电网提供了实验平台,未来可拓展更高效的能量管理策略和AI技术的应用。

MHD0815的博客 1万+

Maven 整合FreeMarker使用

pom.xml 1 <!-- freemarker jar --> 2 <dependency> 3 <groupId>org.freemarker</groupId> 4 <artifactId>freemarker</artifactId> 5 <version>2.3...

weixin_30329623的博客 1150

Vue - 超强实现网页禁止浏览器缩放功能,浏览器缩放时保持网页不变形、元素不会被挤压等,屏蔽浏览器鼠标滚轮缩放页面(提供详细示例代码,一次引入整个网站无人可以搞乱你的页面布局及样式)

vue,nuxt,禁止浏览器缩放,如何用户缩放浏览器导致页面变形,网页缩放后页面变形了怎么办,怎么解决网站被缩放后元素乱套错乱,vue怎么禁止网页不被缩放,vue如何禁止浏览器缩放,vue缩放网页变形影响布局怎么办,vue电脑分辨率及缩放导致页面变形的问题,前端页面解决浏览器或者系统被放大和缩小导致的显示问题,Vue中页面自适应缩放,如何防止Vue页面缩放时变形/调整大小,Vue项目中,防止页面被缩放和放大,vue等比例缩放网页,网页缩放后界面变形咋办,禁止页面缩放,vue禁止浏览器改变窗口大小,Vue项目

🏆 前端领域优质创作者 1万+

Maven编译Freemarker源码及二开

没有改动解析#{}占位符的源码,这是因为,freemarker.core.FMParser这个类是通过FTL.jj文件进行编译的,你可以看freemarker的github源码,里面是找不到这个类的,这个类是在编译时,将FTL.jj文件编译成了class文件。是gradle编译的,部分源码是在编译后自动生成class文件的,如:src/main/javacc/FTL.jj文件,此文件就是在编译时,生成FMParser.class文件。是maven编译的,并且自己做了简单的二开。

p7+的博客 793

vue支付项目-APP支付宝支付功能

如果用户已安装支付宝客户端,商家 App 唤起支付宝完成支付,支付完后跳回到商家 App 内,最后展示支付结果。如果用户没有安装支付宝客户端,商家 App 内会调起支付宝网页支付收银台,用户登录支付宝账号,支付完后展示支付结果。1.点击按钮开通或者续费,会验证是否选择会员商品以及对协议是否查看选中(这里根据项目需要自行验证,可忽略),验证通过打开选择支付方式弹窗页面,选择微信支付或者支付宝支付;4.可取消支付,放弃支付会返回会员页面,页面提示支付取消;1.判断支付方式,如果是2,则是支付宝支付方式。

总结前端开发中遇到的问题,分享前端知识 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

springBoot 集成 freemarker

springboot 集成 freemarker

快乐的小三菊的博客 7204

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Restlet 扩展生态:JSON、XML、FreeMarker 等插件的集成与应用

Restlet 作为 Java 领域首个 REST API 框架,其强大之处不仅在于核心功能,更在于丰富的扩展生态。本文将详细介绍如何通过 JSON、XML、FreeMarker 等官方扩展插件,快速构建功能完善的 RESTful 应用,帮助开发者轻松处理数据交换、内容渲染等常见需求。 ## 一、JSON 扩展:轻量级数据交换的最佳实践 JSON 作为 REST API 最常用的数据格式,Re

gitblog_00168的博客 485

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SpringBoot之集成FreeMarker

目录:一.运行springboot_freemarker工程二.Springboot-freemarker工程配置详解三.小结一.运行springboot_freemarker工程    git clone 下载工程springboot_repository,项目地址见git@github.com:snail-wj/springboot_repository.git    1.数据库准备     ...

热爱我的热爱 4085

springboot集成freemarker

freemarke在线文档 本项目地址 FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件 基础maven包 spring-boot-starter-parent springboot 启动父包 spring-boo...

lzq199528的博客 1213

freemarker从头开始(Maven构建)

freemarker从头开始(Maven构建)本章节主要讲解从Maven导入freemarker.jar,以及通过Java代码执行第一个freemarker应用: 构建Maven工程 导入freemarker.jar 编写第一个freemarker测试用例 环境 eclipse+JDK1.6+Maven 构建Maven工程 Maven是一个项目管理工具,它包含了一个项目对象模型 (Project

Java 技术专栏,从入门到精通,熟悉企业级开发 7308

Maven资源替换和Freemarker模板

先介绍一下本文的两位主角: Apache Maven - 正当红的项目管理工具 FreeMarker - 老牌的模板引擎 两者貌似互不相干,何来冲突呢? 原来Maven有一个内置的资源替换机制, 可以对由Maven管理的资源文件进行变量替换。 预定义的Maven属性变量包括${name},${project.version},${project.packaging}和${proj

客家女婿的专栏 4405

JFinal+maven+freemarker 入门教程

此次写这个文章主要是为了记得的一个笔记成分,然后分享一下自己在入门学习是的一些步骤和源码问题,分享给大家一起学习,一起探讨深入

海阔天空 不再犹豫 谁共我闯荡 9977

如何简单使用FreeMarker

如何简单使用FreeMarker FreeMarker中文官方参考手册 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 模板编写为FreeMarker Template Language (FTL)。它是简单...

Cui6023056的博客 751

freemarker模板引擎详解以及使用方法

freemarker模板引擎详解以及使用方法

真正的大师永远怀着一颗学徒的心 6482

Spring Boot集成Freemarker

对于小白来说,网上很多关于Spring Boot集成Freemarker的集体操作都不清楚、详细。再次记录一下。 首先在https://start.spring.io自动生成一个Maven项目,导入IDEA,这样,Spring 的环境就好了然后就是集成Freemarker,总共需要操作五个文件: 5个文件详细代码如下: 文本如下,可以拷贝: <!DOCTYPE html> <html lang="en"> <head> <meta char.

weixin_58123282的博客 286

SpringBoot集成freemarker和thymeleaf模板

SpringBoot集成freemarker和thymeleaf模板 1、在MAVEN工程POM.XML中引入依赖架包 &lt;!-- 引入 freemarker 模板依赖 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot...

lelly52800的博客 639

Freemarker入门-用Maven构建

本章节主要讲解从Maven导入freemarker.jar,以及通过Java代码执行第一个freemarker应用: 构建Maven工程导入freemarker.jar编写第一个freemarker测试用例 环境 eclipse+JDK1.6+Maven 构建Maven工程 Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Obje

软通大学企业博客 1万+
上一篇: freemarker的简单入门
下一篇: zookeeper的简单入门
ordinaryday
博客等级 码龄9年 29粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值