`
javamonkey
  • 浏览: 169028 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用Beetl Layout标签

阅读更多

    Beetl  (http://beetl.sourceforge.net/ )   是下一代模板语言,里面有很多新特性,其中有标签语法。可以完成很多功能,如inlcude其他模板,页面布局,以及cache等功能,有点类似jsp的 标签。

    标签语法如下:

    标签名参数1参数2 ......) {
   
    标签体

     }

    如通常首页里用的include标签,在模板里就是这么用的:

 

  <!--: includeFileTemplate("/header.html") {-->

  Hello,Javamonkey, 上次登录时间是03-18

  <!--:}-->

 

   includeFileTemplate是beetl 内置的标签函数,允许多个参数,第一个参数必须是一个模板路径。在beetl渲染此页面的时候,将会渲染参数一指定的模板,如header.html. 至于标签体的内容,将忽略。

   在这儿,header.html内容如下

 

Hello,${name},你上次登录时间是${lastLoginDate,dateformat='MM-dd'}
 


  
   不同于其他模板引擎或者jsp的include功能,includeFileTemplate还允许有标签体(尽管输出的时候忽略),这样,降低模板语言对原有文件的侵入性。

 

   Beetl提供的另外一个内置标签是layout标签(在此感谢网友“原上一棵草”的建议)。
   通常页面都有一个布局,大体上有页面头部,尾部,以及正文三部分。头部和尾部内容基本上固定,只有正文是变化的。一种处理方式是采用如上inlcudeFileTemplate,如下

<!--: includeFileTemplate("/header.html'){}-->
<table>
这是正文
</table>
<!--: includeFileTemplate("/footer.html'){}-->
 

 
  但考虑到布局有可能需要换,更好的方式是使用layout标签。如下

 

<!--: layout("/layout.html'){-->
<table>
这是正文
</table>
<!--:} -->

 

  layout标签允许指定一个layout模板文件,在渲染页面的时候,会将layout标签体的渲染内容作为一个layoutContent变量插入到layout指定模板文件里,如下是本例子中layout.html

<div id="header" >....... </div>

${layoutContent}

<div id = "footer">.........</div>
 

    因此采用layou标签会极大提供页面布局的灵活性,而不需要再使用诸如titles这样额外布局开源框架

   总之,beetl标签机制提供了很多强大功能,很容易实现其他模板引擎难以实现的功能,你也很容像自定义jsp simleTag那样,自己定义标签,如memcachedTag,一个将内容缓存到memecached的标签等等。如果想了解更多关于beetl及其标签的概念,可以访问(http://beetl.sourceforge.net/ ),里面有丰富的文档和帮助

 

 

 

 

 

分享到:
评论

相关推荐

    ios-自定义Layout标签.zip

    在iOS开发中,自定义Layout标签通常涉及到对用户界面(UI)布局的高级控制,以实现独特的视觉效果或满足特定的交互需求。本教程将深入探讨如何创建自定义的Layout标签,尤其是瀑布流布局,这是一种常用于展示多列、...

    Beetl模板引擎入门教程.pdf

    Beetl2.9版本带来了诸多改进和优化,例如对Java语法的深度集成,使得开发者可以在模板中直接使用Java表达式,极大地提高了开发效率。此外,Beetl还支持多种应用场景,如CMS内容管理系统、JavaScript模板以及与HTML的...

    extjs 常用控件的使用 table layout

    在使用Table Layout时,你需要指定列的数量,并且每个控件会被分配到一个单元格中。以下是一些关于Table Layout的关键点: 1. **columns**:定义布局中的列数,每个控件会占据一列或多列。 2. **cellCls**:为...

    使用vue实现grid-layout功能实例代码

    使用 Vue 实现 Grid Layout 功能实例代码 本文主要介绍了使用 Vue 实现 Grid Layout 功能的代码讲解,涵盖了基本布局、节点排版、拖拽事件等多个方面的知识点。 基本布局 在实现 Grid Layout 功能之前,首先需要 ...

    FlexLayout:多标签版式管理器

    特征: 分离器标签标签拖动和排序拖动选项卡集(一次操作即可移动选项卡集中的所有选项卡) 停靠到标签集或框架边缘最大化标签集(双击标签集标题或使用图标) 选项卡溢出(选项卡溢出时显示菜单,使用鼠标滚轮滚动...

    swing-layout-1.0.3

    swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3...

    beetl模板语音教学

    - **集成**: 使用Beetl作为默认的视图层。 - **示例**: `render("templateName")` **4. Servlet** - **配置Listener**: `context.addListener(new BeetlWebConfiguration());` - **编写Servlet**: `response....

    使用Vue-Grid-Layout实现自定义工作台

    在本教程中,我们将深入探讨如何使用 Vue-Grid-Layout 实现自定义工作台。 首先,我们需要安装 Vue-Grid-Layout 和其依赖 Vue.js。如果你还没有设置 Vue 项目,可以使用 Vue CLI 创建一个新的项目。在已有的项目中...

    layout.js布局插件

    1. **引入插件**:在HTML文件中通过`&lt;script&gt;`标签引入layout.js库,可以使用CDN链接或者本地文件路径。 2. **定义布局**:使用JavaScript代码或者数据属性来定义元素的布局属性,如宽度、高度、间隔等。 3. **...

    Android FloatLayout的简单使用.zip

    这个压缩包"Android FloatLayout的简单使用.zip"包含了关于如何使用FloatLayout的相关资料,让我们深入了解一下这个自定义布局。 首先,FloatLayout可能是开发者为了实现浮层或者自由浮动的视图元素设计的。在...

    HFSS 3D Layout用户手册

    由于HFSS 3D Layout是基于HFSS开发的,因此对于那些已经有HFSS使用经验的工程师来说,他们可以轻松地将HFSS 3D Layout项目导出为HFSS项目,从而利用HFSS的强大功能进行更深入的仿真分析。 HFSS 3D Layout用户手册...

    Layout动画入门

    本篇文章将深入介绍如何入门Android的Layout动画,我们将结合源码分析和使用工具来理解其工作原理。 首先,让我们了解什么是Layout动画。在Android中,布局动画是指当一个布局中的View首次显示或者被添加到布局时,...

    jquery layout 经典布局(东南西北中)

    本文将深入探讨jQuery Layout的使用方法和关键特性。 首先,我们需要理解jQuery Layout的基本结构。在经典的“东南西北中”布局中,页面被划分为五个区域:北(North)、南(South)、东(East)、西(West)和中心...

    Layout基础教程.pdf

    4. LayOut 的工具栏:LayOut 的工具栏中有多种工具,包括线、弧、矩形、圆、多边形、文本、标签、尺寸标注、删除等。每种工具都有其独特的功能和用法。 5. LayOut 的线工具:LayOut 的线工具可以画直线和曲线,并且...

    Sprint-Layout60 绝对好用

    本文将深入探讨Sprint-Layout60的核心功能、使用方法以及它如何帮助开发者优化项目。 首先,Sprint-Layout60的主要功能在于提供一套完善的布局解决方案,适用于各种复杂的界面设计需求。它包含了丰富的组件库,这些...

    struts2-layout

    然后,在实际的JSP页面中,可以使用`&lt;s:layout&gt;`标签来引用这个布局,并插入页面内容。比如: ```jsp &lt;s:layout name="myLayout"&gt; &lt;s:layout-component name="content"&gt; &lt;!-- 这里放置页面主要内容 --&gt; &lt;/s:...

    pads-layout与router同步操作

    PADS Layout是其设计环节中用于进行电路板布局的部分,而Router则是用于布线的组件。在PCB设计中,布局和布线是前后相续的两个重要步骤,两者之间的同步操作对于提高设计效率和减少错误有着重要意义。 在PADS V9.3...

    Beetl java模板引擎.zip

    - **表达式**:Beetl使用`${}`包裹表达式,例如`${user.name}`来获取用户对象的name属性。 - **控制语句**:Beetl支持if/else、for循环、switch/case等常见的控制结构,使得模板能够进行条件判断和循环处理。 - *...

    Layout 6.0 绿色汉化完整版

    1. **界面与操作性**:由于是绿色版,该软件不需要安装,用户可以直接运行文件,如`layout60-3.exe`、`layout60-1.exe`和`layout60b.exe`,这使得在不同电脑上使用变得更加灵活。同时,汉化处理使得软件的菜单、提示...

Global site tag (gtag.js) - Google Analytics