`
xuesong.java
  • 浏览: 4604 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java模板引擎

    博客分类:
  • java
阅读更多
Ayada是一个java版的模板引擎, 支持jstl语法, 支持el表达式. 支持自定义标签

1. 基本使用
// webapp代表应用根目录
// 如果页面使用了t:include指令, 则根目录必须指定
// TemplateContext对模板进行管理, 默认情况下模板在修改5分钟之后重新编译,
// 因此TemplateContext对象在应用中应该是单粒.
TemplateContext templateContext = new TemplateContext("webapp");
Template template = templateContext.getTemplate("/user/userList.tml");
StringWriter writer = new StringWriter();
PageContext pageContext = JspFactory.getPageContext(templateContext, writer);
DefaultExecutor.execute(template, pageContext);

System.out.println(writer.toString());

2. 自定义标签
在classes目录下建taglib.tld文件, 内容如下:
## ---- compile tag ----
t:taglib       com.skin.ayada.jstl.core.LibTag

## ---- jstl.core ----
## default tag support
c:if           com.skin.ayada.jstl.core.IfTag
c:set          com.skin.ayada.jstl.core.SetTag
c:out          com.skin.ayada.jstl.core.OutTag
c:each         com.skin.ayada.jstl.core.ForEachTag
c:forEach      com.skin.ayada.jstl.core.ForEachTag
c:choose       com.skin.ayada.jstl.core.ChooseTag
c:when         com.skin.ayada.jstl.core.WhenTag
c:otherwise    com.skin.ayada.jstl.core.OtherwiseTag
c:comment      com.skin.ayada.jstl.core.CommentTag

按照该格式添加自定义标签即可.

自定义标签支持两种引入方式.
全局引入: 在taglib.tld文件中定义的都是全局标签
局部引入: 在页面中引入, 使用<t:taglib name="my:hello" className="test.tag.HelloTag"/>
          局部引入的方式要求必须全局引入t:taglib(t:taglib可以在taglib.tld文件中修改为其他名字)

建议使用全局引入的方式.

3. el表达式
    el表达式解析采用的是ognl, ognl在对不存在的对象进行解析的时候会抛异常, 为了避免在页面中有过多的null检查
    因此对这种异常进行了屏蔽

4. 模板页面示例
------------------------------------------------------------
<t:import name="my:hello1" className="test.tag.HelloTag1"/>
<t:import name="my:hello2" className="test.tag.HelloTag2"/>
<t:import name="my:hello3" className="test.tag.HelloTag3"/>
<html>
<head>
<title>test</title>
</head>
<body>
<h1>c:cout test</h1>
<c:out value="${user.userName}"></c:out>
<c:out><div>${user.userName}</div></c:out>
<c:out id="1" escapeXml="true">
    <div><c:out id="2" value="${user.userName}"></c:out></div>
</c:out>

<h1>c:if test</h1>
<c:if test="${1 == 1}">1 == 1</c:if>

<h1>c:each test</h1>

<c:each items="1,2,3" var="varValue"><p>${varValue}</p></c:each>

<c:forEach items="${userList}" var="user">
    <c:choose>
        <c:when test="${user.age == 0}">0</c:when>
        <c:when test="${user.age == 1}">1</c:when>
        <c:when test="${user.age == 2}">2</c:when>
        <c:when test="${user.age == 3}">3</c:when>
        <c:otherwise>other: ${user.age}</c:otherwise>
    </c:choose>
</c:forEach>
<h1>my:hello test</h1>
<my:hello1/>
<my:hello2/>
<my:hello3/>
</body>
</html>


下载地址: http://ayada.googlecode.com/svn/trunk/
分享到:
评论

相关推荐

    基于java的开发源码-Beetl java模板引擎.zip

    基于java的开发源码-Beetl java模板引擎.zip 基于java的开发源码-Beetl java模板引擎.zip 基于java的开发源码-Beetl java模板引擎.zip 基于java的开发源码-Beetl java模板引擎.zip 基于java的开发源码-Beetl java...

    Handlebars.java逻辑简单支持语义扩展的Java模板引擎

    Handlebars.java是一款基于Java的模板引擎,其设计目标是提供一种简单、直观的方式来构建语义模板,使得开发者在处理视图层逻辑时可以更加高效。它借鉴了Mustache模板语言的许多概念,同时添加了一些特有的功能,以...

    浅谈Java模板引擎性能对比

    Java模板引擎性能对比 Java模板引擎是Web应用程序中一个非常重要的组件,负责将数据绑定到模板中生成最终的HTML页面。不同的Java模板引擎具有不同的性能特点,因此选择合适的模板引擎对于Web应用程序的性能非常重要...

    beetl 国内流行的java模板引擎

    历史 (2009年HP 技术大会 提交的解决多环境部署问题&gt;&gt;:放在注释里的脚本) 应用范围 (全栈程序员或者前端或者美工) 功能概览 特色介绍 列表 ...其他同类比较(freemark,jsp,angularjs,nodejs 等)

    Java模板引擎之FreeMarker

    Java模板引擎之FreeMarker FreeMarker是一个开源的Java模板引擎,它被广泛应用于Web开发中,用于生成动态HTML、XML或其他格式的文本。这个强大的工具允许开发者将逻辑代码与表现层分离,使得网页设计人员可以专注于...

    基于Java的源码-Beetl java模板引擎.zip

    Beetl是一款强大的Java模板引擎,它旨在简化Java开发中的视图层逻辑,提供高效、易用、功能丰富的模板语言。这款开源库由国人开发,其设计目标是提高开发效率,减少开发工作量,使开发者可以更加专注于业务逻辑,而...

    Java模板引擎 FreeMarker

    FreeMarker是一个强大的、开源的Java模板引擎,常用于Web应用中的动态内容生成,尤其是在MVC架构中,作为视图层的技术。它与JSP、JSTL等技术不同,FreeMarker是模型和视图完全分离的,使得开发者可以专注于业务逻辑...

    Beetl java模板引擎.zip

    Beetl是一款强大的Java模板引擎,它被设计用于简化Web应用中的视图层开发,将业务逻辑与表现层分离。Beetl的核心理念是“简洁、高效、易用”,为开发者提供了一种灵活且高性能的方式来生成HTML、XML、JSON等各种格式...

    Java模板引擎Handlebars.java.zip

    Handlebars.java 是一个不包含逻辑的,语义的 Java 模板引擎。 Maven:    &lt;groupId&gt;com.github.jknack&lt;/groupId&gt;  &lt;artifactId&gt;handlebars  ${handlebars-version}   示例代码: Handlebars handlebars = ...

    Beetl java模板引擎 v3.3.1.zip

    Beetl是一款强大的Java模板引擎,它为Java开发者提供了便捷的视图层开发方式,能够高效地处理HTML、XML、JSON等各种格式的模板。在Beetl v3.3.1版本中,开发者可以期待一系列优化和改进,使得模板渲染更加高效且易于...

    Java模板引擎 FreeMarker.7z

    Java模板引擎FreeMarker是一款强大的开源模板技术,常用于Web应用中的动态内容生成,尤其是在MVC架构中,作为视图层的解决方案。它与Spring、Struts等框架配合使用,能够将业务逻辑与页面展示分离,使得开发者可以...

    java源码:Java模板引擎 FreeMarker.tar.gz

    FreeMarker是一个强大的、开源的Java模板引擎,常用于Web应用中的动态内容生成,尤其是在MVC架构中,作为视图层的实现技术。它与JSP类似,但更专注于分离业务逻辑和显示逻辑,使得开发者可以编写更加清晰、独立于...

    jetbrick-template-1x, Java模板引擎,快速轻松.zip

    jetbrick-template-1x, Java模板引擎,快速轻松 jetbrick-template 2.0 已经 released,jetbrick-template 1.x 将不再提供新功能,只负责 Bug 修复。jetbrick模板 2.0文档:http://subchen.github.io

    Java 模板引擎 jetbrick-template在springmvc中配置使用

    Java模板引擎Jetbrick-Template是Java Web开发中用于动态生成HTML或其他格式文本的工具,它在Spring MVC框架中的集成能够帮助开发者更高效地处理视图层的渲染工作。本篇文章将详细阐述如何在Spring MVC中配置和使用...

    Java模板引擎FreeMarker

    FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,FreeMarker被设计用来生成HTML Web页面(为了提高页面的访问速度,把页面静态化),特别是基于MVC模式的应用程序

    rythmengine, 具有"Razor" 丰富特性高性能和易于使用的Java模板引擎.zip

    rythmengine, 具有"Razor" 丰富特性高性能和易于使用的Java模板引擎 Rythm模板引擎具有"Razor"。丰富特性。高性能和易于使用的Java模板引擎 Rythm引擎项目 我们要在这个项目中加入我们。 请联系格林 Luo via 链接...

    jetbrick-template是一个新一代Java模板引擎具有高性能和高扩展性

    jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性。 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板。 指令和 Velocity 相似,表达式和 Java 保持一致,易学易用...

    smarty4j (Java模板引擎) v1.0.0

    smarty4j是一个smarty for java的模板引擎,该引擎是将smarty模板从php上移植过来,需要asm-3.0.jar。smarty4j将文本解析成语法树,然后根据语法树生成Java Code的字节码,相当于一个基于JVM的smarty语法的编译器。...

Global site tag (gtag.js) - Google Analytics