• freemarker和jsp的比较


    1.共享变量

    FreeMarker 的共享变量是我最喜欢的“隐藏”功能之一。此功能可以让你设置自动添加到所有模板的值。 例如,可以设置应用程序的名称作为共享变量。

    1
    2
    Configuration configuration = new Configuration();
    configuration.setSharedVariable("app", "StackHunter");

    然后像任何其他变量一样访问它。

    1
    App: ${app}

    在过去使用共享变量一般引用资源包 然后使用像 ${i18n.resourceBundle.key} 这样的表达式来获取值。

    1
    2
    3
    ${i18n.countries.CA}
    ${i18n.countries['CA']}
    ${i18n.countries[countryCode]}

    上面这些行都引用 countries_en.properties 资源包内的 key “CA”对应的值。你需要执行自己的 TemplateHashModel,然后将其添加为一个共享变量来实现这一目标。

    2.支持 JSON

    FreeMarker 内置 JSON 支持。 比方说你有以下的 JSON 存储到变量命名 user 的字符串中。

    1
    { 'firstName': 'John', 'lastName': 'Smith', 'age': 25, 'address': { 'streetAddress': '21 2nd Street', 'city': 'New York', 'state': 'NY', 'postalCode': 10021 }}

    使用 ?eval 将从字符串转换为一个 JSON 对象,然后像其他数据一样在表达式中使用。

    1
    2
    <#assign user = user?eval>
    User: ${user.firstName}, ${user.address.city}

    3.类加载没有 PermGen 问题

    如果你已经开发Java Web应用程序一段时间,那么对于 JVM 的 PermGen 问题可能并不陌生。由于 FreeMarker 模板不编译成类,它们不占用 PermGen 空间,并不需要一个新的类加载器加载。

    4.宏定义(类似jsp标签)非常方便

  • 相关阅读:
    combobox下拉框只能选择不能编辑
    nginx 虚拟主机
    nginx加密网站
    nginx平滑升级
    http网站加密
    CentOS下网卡启动、配置等ifcfg-eth0教程
    CentOS5.6系统中安装并使用USB无线网卡(配置成功) 转
    【RedHat/Centos】利用iso镜像做本地yum源 转
    centOS6.0 64 位将光盘作为yum源(转)
    Linux安装无线网卡驱动,实现Linux无线上网 转
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/7818817.html
Copyright © 2020-2023  润新知