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标签通常涉及到对用户界面(UI)布局的高级控制,以实现独特的视觉效果或满足特定的交互需求。本教程将深入探讨如何创建自定义的Layout标签,尤其是瀑布流布局,这是一种常用于展示多列、...
Beetl2.9版本带来了诸多改进和优化,例如对Java语法的深度集成,使得开发者可以在模板中直接使用Java表达式,极大地提高了开发效率。此外,Beetl还支持多种应用场景,如CMS内容管理系统、JavaScript模板以及与HTML的...
在使用Table Layout时,你需要指定列的数量,并且每个控件会被分配到一个单元格中。以下是一些关于Table Layout的关键点: 1. **columns**:定义布局中的列数,每个控件会占据一列或多列。 2. **cellCls**:为...
使用 Vue 实现 Grid Layout 功能实例代码 本文主要介绍了使用 Vue 实现 Grid Layout 功能的代码讲解,涵盖了基本布局、节点排版、拖拽事件等多个方面的知识点。 基本布局 在实现 Grid Layout 功能之前,首先需要 ...
特征: 分离器标签标签拖动和排序拖动选项卡集(一次操作即可移动选项卡集中的所有选项卡) 停靠到标签集或框架边缘最大化标签集(双击标签集标题或使用图标) 选项卡溢出(选项卡溢出时显示菜单,使用鼠标滚轮滚动...
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作为默认的视图层。 - **示例**: `render("templateName")` **4. Servlet** - **配置Listener**: `context.addListener(new BeetlWebConfiguration());` - **编写Servlet**: `response....
在本教程中,我们将深入探讨如何使用 Vue-Grid-Layout 实现自定义工作台。 首先,我们需要安装 Vue-Grid-Layout 和其依赖 Vue.js。如果你还没有设置 Vue 项目,可以使用 Vue CLI 创建一个新的项目。在已有的项目中...
1. **引入插件**:在HTML文件中通过`<script>`标签引入layout.js库,可以使用CDN链接或者本地文件路径。 2. **定义布局**:使用JavaScript代码或者数据属性来定义元素的布局属性,如宽度、高度、间隔等。 3. **...
这个压缩包"Android FloatLayout的简单使用.zip"包含了关于如何使用FloatLayout的相关资料,让我们深入了解一下这个自定义布局。 首先,FloatLayout可能是开发者为了实现浮层或者自由浮动的视图元素设计的。在...
由于HFSS 3D Layout是基于HFSS开发的,因此对于那些已经有HFSS使用经验的工程师来说,他们可以轻松地将HFSS 3D Layout项目导出为HFSS项目,从而利用HFSS的强大功能进行更深入的仿真分析。 HFSS 3D Layout用户手册...
本篇文章将深入介绍如何入门Android的Layout动画,我们将结合源码分析和使用工具来理解其工作原理。 首先,让我们了解什么是Layout动画。在Android中,布局动画是指当一个布局中的View首次显示或者被添加到布局时,...
本文将深入探讨jQuery Layout的使用方法和关键特性。 首先,我们需要理解jQuery Layout的基本结构。在经典的“东南西北中”布局中,页面被划分为五个区域:北(North)、南(South)、东(East)、西(West)和中心...
4. LayOut 的工具栏:LayOut 的工具栏中有多种工具,包括线、弧、矩形、圆、多边形、文本、标签、尺寸标注、删除等。每种工具都有其独特的功能和用法。 5. LayOut 的线工具:LayOut 的线工具可以画直线和曲线,并且...
本文将深入探讨Sprint-Layout60的核心功能、使用方法以及它如何帮助开发者优化项目。 首先,Sprint-Layout60的主要功能在于提供一套完善的布局解决方案,适用于各种复杂的界面设计需求。它包含了丰富的组件库,这些...
然后,在实际的JSP页面中,可以使用`<s:layout>`标签来引用这个布局,并插入页面内容。比如: ```jsp <s:layout name="myLayout"> <s:layout-component name="content"> <!-- 这里放置页面主要内容 --> </s:...
PADS Layout是其设计环节中用于进行电路板布局的部分,而Router则是用于布线的组件。在PCB设计中,布局和布线是前后相续的两个重要步骤,两者之间的同步操作对于提高设计效率和减少错误有着重要意义。 在PADS V9.3...
- **表达式**:Beetl使用`${}`包裹表达式,例如`${user.name}`来获取用户对象的name属性。 - **控制语句**:Beetl支持if/else、for循环、switch/case等常见的控制结构,使得模板能够进行条件判断和循环处理。 - *...
1. **界面与操作性**:由于是绿色版,该软件不需要安装,用户可以直接运行文件,如`layout60-3.exe`、`layout60-1.exe`和`layout60b.exe`,这使得在不同电脑上使用变得更加灵活。同时,汉化处理使得软件的菜单、提示...