一个freeMarker的简单例子

1.freemarker是什么,下面是官网给的定义,虽然是英文的,但还是看得懂


FreeMarker is a "template engine"; a generic tool to generate text output (anything from HTML to autogenerated source code) based on templates. It's a Java package, a class library for Java programmers. It's not an application for end-users in itself, but something that programmers can embed into their products.

FreeMarker is designed to be practical for the generation of HTML Web pages, particularly by servlet-based applications following the MVC (Model View Controller) pattern. The idea behind using the MVC pattern for dynamic Web pages is that you separate the designers (HTML authors) from the programmers. Everybody works on what they are good at. Designers can change the appearance of a page without programmers having to change or recompile code, because the application logic (Java programs) and page design (FreeMarker templates) are separated. Templates do not become polluted with complex program fragments. This separation is useful even for projects where the programmer and the HTML page author is the same person, since it helps to keep the application clear and easily maintainable.

Although FreeMarker has some programming capabilities, it is not a full-blown programming language like PHP. Instead, Java programs prepare the data to be displayed (like issue SQL queries), and FreeMarker just generates textual pages that display the prepared data using templates.
FreeMarker 是一个模版引擎,一个基于文本的模板输出工具,在表示层方面应用广泛

1.下载freemarker的包,下载地址:http://freemarker.org/

2.在eclipse中创建一个java工程,把freemarker.jar包引进来。写一个简单的测试类FreeMarkerTest
public static void main(String[] args) throws Exception {
Configuration cfg = new Configuration();

cfg.setDirectoryForTemplateLoading(new File("E:\\jar\\freemarker\\freemarker-2.3.16"));

cfg.setObjectWrapper(new DefaultObjectWrapper());

Template temp = cfg.getTemplate("test.html");

Map root = new HashMap();
root.put("user", "davide");
Map latest = new HashMap();
root.put("latestProduct", latest);
latest.put("url", "products/greenmouse.html");
latest.put("name", "green mouse");

Writer out = new OutputStreamWriter(new FileOutputStream("E:\\jar\\freemarker\\freemarker-2.3.16\\test_result.html"));
temp.process(root, out);
out.flush();
out.close();
}

3.test.html相当于ftl文件,其内容为
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome ${user}!</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>
执行为上面的main方法后,会将数据填充到test.html并生成另一个文件test_result.html,其内容为
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome davide!</h1>
<p>Our latest product:
<a href="products/greenmouse.html">green mouse</a>!
</body>
</html>
当然,我可以为您提供一个Spring MVCFreemarker的项目示例。这个示例将演示如何使用Spring MVC框架和Freemarker模板引擎构建一个简单的Web应用。 首先,您需要创建一个基本的Spring MVC项目。您可以使用Maven或Gradle来管理项目依赖。确保您已经添加了必要的Spring MVCFreemarker依赖项。 接下来,创建一个控制器类来处理请求和响应。在这个示例中,我们将创建一个名为"HomeController"的控制器类。 ```java @Controller public class HomeController { @RequestMapping("/") public String home(Model model) { model.addAttribute("message", "Hello, World!"); return "home"; } } ``` 在这个示例中,我们使用`@Controller`注解将类标记为控制器,并使用`@RequestMapping`注解将`home()`方法映射到根路径"/"。在`home()`方法中,我们使用`Model`对象来添加一个名为"message"的属性,并将其值设置为"Hello, World!"。最后,我们返回字符串"home",这将指示Spring MVC使用名为"home"的Freemarker模板来渲染视图。 接下来,创建一个名为"home.ftl"的Freemarker模板文件。在这个示例中,我们将简单地显示在控制器中设置的消息。 ```html <!DOCTYPE html> <html> <head> <title>Spring MVC and Freemarker Example</title> </head> <body> <h1>${message}</h1> </body> </html> ``` 在这个模板中,我们使用`${message}`来显示控制器中设置的消息。 最后,在配置文件中配置Spring MVCFreemarker。您可以在XML配置文件中或使用Java配置类进行配置。以下是一个简单Java配置类示例: ```java @Configuration @EnableWebMvc public class AppConfig implements WebMvcConfigurer { @Bean public ViewResolver viewResolver() { FreeMarkerViewResolver resolver = new FreeMarkerViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".ftl"); resolver.setCache(true); resolver.setContentType("text/html; charset=UTF-8"); return resolver; } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } } ``` 在这个配置类中,我们使用`@EnableWebMvc`注解启用Spring MVC,并创建一个`ViewResolver` bean来配置Freemarker视图解析器。我们设置了视图前缀和后缀,指定了缓存和内容类型。 这就是一个简单的Spring MVCFreemarker项目示例。您可以根据自己的需求进行调整和扩展。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值