SiteMesh如何结合Freemarker及velocity使用

Freemarker 入门示例 https://www.jb51.net/article/197670.htm

FreeMarker 整合Struts2示例 https://www.jb51.net/article/197698.htm

SiteMesh入门示例 https://www.jb51.net/article/197668.htm

那么如何将Freemarker与SiteMesh结合起来使用,这在官方示例中已经有了相关例子。

查看官方示例中decorators.xml文件,里面有一段是关于Freemarker使用的

<decorator name="freemarker" page="freemarker.ftl">
  <pattern>/freemarker.html</pattern>
</decorator> 

也就是说请求freemarker.html时会拦截并处理,并发freemarker.ftl作为默认页面处理
看一下freemarker.ftl的内容,因为在JSP中是使用标签来获取Head或者Body的,所以在这个页面主要是看看如何获取这些元素。

<html>
  <head>
    <title>Freemarker Decorator - ${title}</title>
    <link href="${base}/decorators/main.css" rel="external nofollow" rel="stylesheet" type="text/css">
    ${head}
  </head>
  <body>
   <div id="pageTitle">${title}</div>
   <hr/>
   ${body}
   <div id="footer">
     <b>Disclaimer:</b> This site is an example site to demonstrate SiteMesh. It serves no other purpose.
   </div>
  </body>
</html> 

可以看到,直接通过$来获取几个元素,${title}、 ${head}、${base}、${title}、${body}
velocity的结合是一样的,看看关于他的配置

<decorator name="velocity" page="velocity.vm">
  <pattern>/velocity.html</pattern>
</decorator> 

看看velocity.vm页面内容

<html>
  <head>
    <title>Velocity Decorator - $title</title>
    <link href="$base/decorators/main.css" rel="external nofollow" rel="stylesheet" type="text/css">
    $head
  </head>
  <body>
   <div id="pageTitle">$title</div>
   <hr/>
   $body
   <div id="footer">
     <b>Disclaimer:</b> This site is an example site to demonstrate SiteMesh. It serves no other purpose.
   </div>
  </body>
</html> 

不多解释了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java SiteMesh新手学习教程代码案例

    官网:http://wiki.sitemesh.org/wiki/display/sitemesh/Home 也可以下载官方的示例Demo参考和学习,这里我只做一个简单示例,演示最基本的使用 首先就是加Jar包,我用的是sitemesh-2.4.2.jar,然后在web.xml中增加过滤器: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns=&

  • SpringBoot与velocity的结合的示例代码

    Velocity是一种Java模版引擎技术,MVC架构的一种实现,但它更多的是关注在Model和View之间,作为它们的桥梁.服务端渲染,我们使用最多的就是用他来渲染HTML.下面我们看看他与spring boot的结合. 老样子,我们看下pom中定义的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifact

  • 如何解决SpringBoot2.x版本对Velocity模板不支持的方案

    背景 在springboot1.4.x版本之前对velocity的模板支持的是相当好的,不止出于什么原因springboot从1.5.x以后停止了对velocity的支持,甚至在2.x版本中移除了和velocity的相关代码.目前手上有些项目使用的是velocity模板引擎,同时也使用了springboot,现在想升级到springboot2.x,同时还想继续使用velocity,怎么办?springboot不支持,就自己想办法支持下吧. 思路:把springboot早期版本的velocity支

  • html文件中jquery与velocity变量中的$冲突的解决方法

    问题描述: 在使用velocity模版引擎的环境下,使用jquery时,如:$.fullCalendar.gcalFeed('http://www.google.com/calendar/feeds/sfzc1%40realintelligence.com/public/basic') 其中$与velocity变量中的$冲突. 解决方案: 定义一个velocity变量:#set($jquery="$.") 然后:${jquery}fullCalendar.gcalFeed('http:

  • Velocity基本语法介绍

    一.基本语法1."#"用来标识Velocity的脚本语句,包括#set.#if .#else.#end.#foreach.#end.#iinclude.#parse.#macro等:如:#if($info.imgs)<img src="http://jb51.net/ydmx_lei/blog/$info.imgs" border=0>#else<img src="http://jb51.net/ydmx_lei/blog/noPhoto

  • velocity显示List与Map的方法详细解析

    一.遍历个map类型 1.先看后台java程序Java代码 复制代码 代码如下: Map<String,String> paramValues=new HashMap<String, String>();      ***      *** 中间赋值操作省略了      ***      data.put("paramValues", paramValues);//传值给velocity 2.前台velocity模板文件中取出这个map的key和valueJav

  • JAVA velocity模板引擎使用实例

    velocity使用1.7版本. 在win7下使用intelliJ IDEA建立一基于tomcat的web app项目,命名为todo_web,设置path为/todo,导入velocity相关jar包.只导入velocity-1.7.jar这个包可能会报错,根据提示再导入velocity自带的其他包. 项目结构如下: 测试Tomcat index.jsp内容如下: 复制代码 代码如下: <%-- Created by IntelliJ IDEA. --%><%@ page conten

  • jsp中sitemesh修改tagRule技术分享

    sitemesh默认提供了一些常用的rule 可以看到其实可以选择 /** * Extracts the contents of any elements that look like * <code><content tag='foo'>...</content></code> and write the contents * to a page property (page.foo). * * <p>This is a cheap and c

  • SiteMesh如何结合Freemarker及velocity使用

    Freemarker 入门示例 https://www.jb51.net/article/197670.htm FreeMarker 整合Struts2示例 https://www.jb51.net/article/197698.htm SiteMesh入门示例 https://www.jb51.net/article/197668.htm 那么如何将Freemarker与SiteMesh结合起来使用,这在官方示例中已经有了相关例子. 查看官方示例中decorators.xml文件,里面有一段是

  • Spring Boot如何集成模板引擎FreeMarker

    一.Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 在java中,主要的模板引擎有JSP.Thymeleaf.FreeMarker.Velocity等. 虽然随着前后端分离的崛起和流行,模板引擎已遭受到冷落,但不少旧项目依然使用java的模板引擎渲染界面,而偶尔自己写一些练手项目,使用模板引擎也比起前后端分离要来的快速. 本系列会分别讲解SpringBoot

  • Struts 2中的constant配置详解

    1.<constant name="struts.i18n.encoding" value="UTF-8" /> 指定Web应用的默认编码集,相当于调用 HttpServletRequest的setCharacterEncoding方法. 2.<constant name="struts.i18n.reload" value="false"/> 该属性设置是否每次HTTP请求到达时,系统都重新加载资源文

  • struts2中常用constant命令配置方法

    struts.objectFactory这个属性用 于说明Struts2的 对象池创建工厂,Struts2也有自己的对象池,就像Spring那样,在配置文件中你可以引用对象池中的对象,你可以借助于Spring中的对象池, 当想要得到Spring中的对象池时,申明struts.objectFactory为Spring的对象池构建工厂.... struts.serve.static.browserCache 该属性设置浏览器是否缓存静态内容.当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响

  • JavaWeb工程中集成YMP框架快速上手

    了解YMP框架 YMP于2014年10月25日正式发布1.0版本,在此之前就已在实际项目中得到广泛使用,从最初仅限团队内部使用,到合作伙伴的开发团队,再到身边的朋友,和朋友的朋友们也开始将YMP投入到实际项目中去,所以在这里我要向一直以来帮助.支持我的这些同事.朋友们表示衷心的感谢!是大家的信赖和对它的认可,才使得YMP快速成长起来,在变化过程中它一直在不断的改进.优化直至最终对外发布. 没有完美的框架,只有适合的才是好的,为了让YMP更简单易用,从2015年1月26日正在开始了v2版本的开发,

  • JSON 学习之完全手册 图文

    第一章 何谓JOSN JSON:JavaScript Object Notation 是Javascript (jscript.ECMA Javascript等)描述对象数据(各种元数据其实也是最简单的对象)的一种数据结构.概念和用法均类似于Hash(哈希表)或者关联数组. JSON建构于两种结构: "名称/值"对的集合(A collection of name/value pairs).不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(d

  • 详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】

    目录 一.AJAX示例 1.1.优点 1.2.缺点 1.3.jQuery AJAX示例 二.延迟对象(Deferred) 2.1.回调函数 2.2.deferred.done 三.跨域 3.1.什么是跨域 3.2.JSONP跨域 3.3.jQuery使用JSONP跨域 3.4.跨域资源共享(CORS) 3.5.小结 四.弹出层 五.模板引擎 5.1.Hello World 5.2.方法 5.3.与AJAX结合应用 六.示例下载 一.AJAX示例 AJAX全称为"Asynchronous Java

  • Struts2开发 基本配置与类型转换

    一.Action配置中的各项默认值 <package name="csdn" namespace="/test" extends="struts-default">        <action name="helloworld" class="cn.csdn.action.HelloWorldAction" method="execute" > <resu

  • Java自定义简单标签实例

    下面将以权限的控制为例自定义一个标签:一.标签类型 复制代码 代码如下: <wxt:per uri="${pageContext.request.contextPath }/privilege/list"></wxt:per> 步骤:1.自定义一个类PerssionTag 继承SimpleTagSupport(自定义标签一般都会继承这个类) 复制代码 代码如下: package cn.com.liveuc.privilege.tag;import java.io

  • 一个合格JAVA软件工程师应该具备什么

    想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,在面试之前到底需要准备哪些东西呢?面试时面试官想了解你的什么专业技能,以下都是一个合格JAVA软件工程师所要具备的. 一.专业技能 1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等. 2.熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练

随机推荐