FTL(Freemarker模板文件)在SSM项目中的使用

先普及一下

FreeMarker是一种比较简单的网页展示技术,是网页模板和数据模型的结合体。这种结合模式的好处就是,分离了网页界面设计人员和编程人员的工作,让他们各司其职

FreeMarker就是一种用Java编写的模板引擎, 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

小编手头有整套智慧校园系统,是基于SSM的(Spring+Shiro+MVC),下面我就以此为例介绍一下FTL模板文件的用法

1 模板的应用

利用FTL设计网页展示页面要方便快捷的多,你可以实现设计好模板然后直接调用即可,调用代码如下:

<#include "${managerViewPath}/include/macro.ftl"/>

示例中${managerViewPath}这个路径需实现在properties配置文件中声明

managerViewPath=/WEB-INF/manager

然后在Spring配置文件spring-core.xml中声明

<description>spring 包扫描配置文件</description>
<context:annotation-config /> 
<context:property-placeholder location="classpath:xx.properties" />

<mvc:interceptors>
	<mvc:interceptor>
		<mvc:mapping path="/**" />
		<bean class="xx.xx.interceptor.ActionInterceptor" />
	</mvc:interceptor>
</mvc:interceptors>

再新建ActionInterceptor.java声明变量如下:

@Value("${managerViewPath}")
private String managerViewPath;

这样只需把模板文件放在/WEB-INF/manager下面就可以在项目中随意调用了,注意文件名不要重复哦!

2、模板解析

在具体的JAVA程序文件中如何解析FTL模板呢?

@Controller("achSystemAction")
@RequestMapping("/${managerPath}/ir")
public class AchivesAction extends BaseAction{
	@Autowired
	private IAchivesRiz achivesRiz;
	
	@RequestMapping("/index")
	public String index(HttpServletRequest request,ModelMap model) {

		return view("/ir/system/index");//返回学术管理后台文件
	}
」

“view()”在哪里呢?是在BaseAction.java文件中定义的

public  static String VIEW = "/manager";
protected String view(String path) {
  return VIEW+path;
}

然后在配置文件spring-mvc.xml中配置freemarker

<!-- freemarker的配置 -->
	<bean id="freemarkerConfig"
		class="net.yijie.basic.configurer.ShiroTagFreeMarkderConfigurer">
		<property name="templateLoaderPath" value="/" />
		<property name="defaultEncoding" value="utf-8" />
		<property name="freemarkerSettings">
			<props>
				<prop key="template_update_delay">1</prop>
				<prop key="locale">zh_CN</prop>
				<prop key="datetime_format">yyyy-MM-dd</prop>
				<prop key="date_format">yyyy-MM-dd</prop>
				<prop key="number_format">#.##</prop>
				<prop key="auto_import">${managerViewPath}/include/macro.ftl as yj</prop>
			</props>
		</property>
	</bean>

看到“as yj”了吧!!!这是很重要的,以后再设计FTL文件都要以此<@yj.xx></@yj.xx>为闭合

<@yj.html5>
	<@yj.nav title="项目列表"></@yj.nav>
	<@yj.searchForm   name="searchForm" action="">
			<@yj.text label="项目名"  name="signName" value="" title="请输入项目名"  placeholder="请输入项目名" />
			<@yj.searchFormButton>
				<@yj.queryButton id="submitSearch" />								
			</@yj.searchFormButton>
	</@yj.searchForm>
</@yj.html5>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ccbuptlib

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值