freemarker介绍与封装shiro标签

本文介绍了Freemarker,一个基于模板的Java类库,用于生成HTML页面,实现MVC模式下的前端与后端分离。讨论了Freemarker与Velocity、JSP的比较,强调了Freemarker在性能、宏定义和内置功能上的优势。同时,文章提到了Freemarker在Spring MVC中的整合以及如何封装Shiro标签,提供了进一步的学习资源。
摘要由CSDN通过智能技术生成

freemarker简介

  1. 什么是freemarker
    FreeMarker 是一款模板引擎:即一种基于模板、用来生成输出文本(任何来自于 HTML 格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包,或者 说是一个类库。它不是面向最终用户的,而是为程序员提供的一款可以嵌入他们所开发产品 的应用程序。 FreeMarker 实际上是被设计用来生成 HTML 页面,尤其是通过实现了基于 MVC(Model View Controller,模型-视图-控制器)模式的 Java Servlet 应用程序。使用 MVC 模式的动态页面 的设计构思使得你可以将前端设计师(编写 HTML 页面的人员)从程序员中分离出来。那么, 所有人各司其职,发挥其最擅长的一面。网页设计师可以改写页面的显示效果而不受程序员 编译代码的影响,因为应用程序的逻辑(这里是 Java 程序)和页面设计(这里是 FreeMarker 模 板)已经被分开了。页面模板代码不会受到复杂程序代码的影响。这种分离的思想即便对一 个程序员和页面设计师是同一个人的项目来说也都是非常有用的,因为分离使得代码保持简 洁而且易于维护。 尽管 FreeMarker 也拥有一些编程能力,但是它却不像 PHP 那样,是的一种全面的编程 语言。反而,Java 程序准备的数据来进行显示(比如 SQL 数据库查询),FreeMarker 仅仅是使 用模板生成文本页面来呈现已经准备好的数据而已。 关系图
    FreeMarker 不是 Web 开发的应用程序框架。它是一个适用于 Web 应用程序框架中的组 件,但是 FreeMarker 引擎本身并不知道 HTTP 协议或 Java Servlet 的存在。它仅仅来生成文 本内容。既然是这样,它也非常适用于非 Web 应用程序的开发环境。只是要注意的是,我 们使用 FreeMarker 作为视图层的组件,是 为了给诸如 Struts 这样的 Model 2 应用框架提供现 成的解决方案。

freemarker、velocity、jsp的比较

  • 在java领域,表现层技术主要有三种:jsp、freemarker、velocity
  • jsp是大家最熟悉的技术
    优点:
    1、功能强大,可以写java代码
    2、支持jsp标签(jsp tag)
    3、支持表达式语言(el)
    4、官方标准,用户群广,丰富的第三方jsp标签库
    5、性能良好。jsp编译成class文件执行,有很好的性能表现
    缺点:
    jsp没有明显缺点,非要挑点骨头那就是,由于可以编写java代码,如使用不当容易破坏mvc结构。
  • velocity是较早出现的用于代替jsp的模板语言
    优点:
    1、不能编写java代码,可以实现严格的mvc分离
    2、性能良好,据说比jsp性能还要好些
    3、使用表达式语言,据说jsp的表达式语言就是学velocity的
    缺点:
    1、不是官方标准
    2、用户群体和第三方标签库没有jsp多。
    3、对jsp标签支持不够好
  • freemarker
    优点:
    1、不能编写java代码,可以实现严格的mvc分离
    2、性能非常不错
    3、对jsp标签支持良好
    4、内置大量常用功能,使用非常方便
    5、宏定义(类似jsp标签)非常方便
    6、使用表达式语言
    缺点:
    1、不是官方标准
    2、用户群体和第三方标签库没有jsp多
  • 选择freemarker的原因:
    1、性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。
    2、宏定义比jsp tag方便
    3、内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便
    4、支持jsp标签
    5、可以实现严格的mvc分离

所需的jar包

        <!-- freemarker模板 -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.20</version>
        </dependency>

        <!-- freemarker + shiro(标签) begin -->
        <dependency>
            <groupId>net.mingsoft</groupId>
            <artifactId>shiro-freemarker-tags</artifactId>
            <version>0.1</version>
        </dependency>

freemarker整合springMVC

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值