关闭

Java: FreeMarker的配置和使用

发表于:2015-2-03 09:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小红星闪啊闪    来源:51Testing软件测试网采编

  初学什么都不可以忽略的地方就是这个东西的官方网站:http://freemarker.org/。下载或者API都可以参考这里。
  FreeMarker是什么
  非常的简单明了。FreeMarker是一个java包。实现了MVC模式,分离开发者和设计师。也就是分离html也java的代码。
  FreeMarker是如何工作
  这是官网的图。非常明确的说明了FreeMarker是如何运作的。首先需要有一个template模板,在那里就是一堆的html标签和一些专属FreeMarker的标签,这些标签之后会被具体的数据代替。这些数据就是有左下的Javaobjects提供。<FreeMarker>就是工程中的Jar包。他把这些模板和Javaobjects的数据加工组合之后输出html页面。所以,FreeMarker的功能,就如官网中一直强调的,不是别的而是一个模板引擎。
  在工程中最后把这些捏合在一起,让他们彼此知道、协同工作的是web.xml配置文件。这里先介绍web.xml的配置,之后具体说明如何一步一步的添加配置文件中涉及到的模板、javaobjects等。这样有利于读者从总体出发逐步把握每一个相关的细节。
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>example.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
  配置依次说明了:有一个叫Test的servlet,对应在代码的example包的Test类。这个类的名字可以随便起,其他的节点在配置的时候使用的知识servlet-name,然后他会找到这个类。下面的servlet-mapping在url中访问*.do的时候会访问这个servlet-name为Test的节点配置的类。之后,在index.jsp中添加一个指向*.do的超链接。整个的整个测试项目就可以run起来了。
  按照MVC的方式理解。在servlet-name中配置的类就是Controller。View就是模板。Model就是之后在HashMap中的数据。下面依次创建在配置文件中直接或者间接需要用到的代码。
  添加可运行的代码
  这里假设你已经创建了一个webproject,这个project的名字叫做test。首先创建模板。一定要在WebRoot目录下创建一个templates目录。然后在里面添加后缀为ftl(freemarkertemplate的缩写),名称为Test的模板。在配置文件中没有出现模板叫什么,所以这里你可以随便命名这个模板文件。这个文件之后会在Controller中明确指定。不会出现找不到的问题。
  代码:
<!DOCTYPEhtml>
<html>
<head>
<title>Hello</title>
</head>
<body>
ThisismyHTMLpage.<br>
<h1>${user}</h1>
</body>
</html>
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号