文档章节

Introduction StringTemplate

散关清渭
 散关清渭
发布于 2015/04/16 23:36
字数 233
阅读 16
收藏 0
点赞 0
评论 0

StringTemplate is not a "system" or "engine" or "server"; 

It is designed to be embedded inside other applications and is distributed as a small library with no external dependencies except ANTLR

The primary classes of interest are STSTGroupDir, and STGroupFile

You can directly create a template in code, you can load templates from a directory, and you can load a file containing a collection templates (a template group file). 

Group files behave like zips or jars of template directories.

If you would like to keep just the template text and not the formal template definition around the template text, you can use STRawGroupDir.


Group files are collections of templates and dictionaries and have .stg file suffixes. 

Group files can also import templates or groups. 

The basic format looks like:

delimiters 
imports 
dictionaries 
templates


Use delimiters keyword to set delimiters per group file:  <...> are the default.



import a single template file, a group file, or a directory of templates.

Template definitions

Template definitions look like function definitions with untyped arguments:

templateName(arg1, arg2, ..., argN) ::= "single-line template"

or

templateName(arg1, arg2, ..., argN) ::= <<
multi-line template
>>

or

templateName(arg1, arg2, ..., argN) ::= <%
multi-line template that ignores indentation and newlines
%>




参考文献:

[0]  StringTemplate 4 Documentation https://theantlrguy.atlassian.net/wiki/display/ST4/Introduction


© 著作权归作者所有

共有 人打赏支持
散关清渭
粉丝 24
博文 159
码字总数 166498
作品 0
东城
程序员
spring mvc中使用stringtemplate

如果厌倦了JSTL,freemaker,velocity等,可以用下开源的stringtemplate, 地址是:http://www.stringtemplate.org/ 它的特点是:,同时支持java,C#,Python,强制使用$...$来作分割符: 并且它很大程度...

墙头草 ⋅ 2011/07/25 ⋅ 0

StringTemplate

StringTemplate一个可以生成原代码,web页面,emails和其它任何需要有格式的文本输出。StringTemplate已应用在为jGuru.com与antlr.org网站产生web页面。...

匿名 ⋅ 2008/09/07 ⋅ 0

Ar4j 0.2.2 发布,Java持久层框架

Ar4j 是一个轻量级的Java持久层框架,基于 ActiveRecord 设计模式。 Changes: Some major bugfixes and improvements. A custom autowiring mechanism was removed in favor of a native Sp......

红薯 ⋅ 2010/05/13 ⋅ 0

java导出大量的excel

废话少说,直入主题 基本思路为 创建一个临时文件 写入数据 导出数据 删除临时文件 首先需要两个jar包 antlr和stringtemplate 创建数据库中的类Row private String name1; private String na...

扎西多顿 ⋅ 2015/09/16 ⋅ 0

jQuery系列之目录汇总

最近一个月写了些关于jQuery的文章,谢谢大家的支持。文章仅我个人观点,也许有不对的地方,请指出。这个系列还在更新中 一:jQuery基础系列: jQuery温习篇---强大的JQuery选择器 jQuery之工...

zting科技 ⋅ 2017/01/10 ⋅ 0

Getting started with MVC(9)

View engine Spring MVC providesViewandViewResolverto find view and render view. MVC providesViewEngineto do the same job. View Engine By default, ozark support tow built-in view......

hantsy ⋅ 2016/04/19 ⋅ 0

ASP.NET 商城--NetShop

1、独立免费的网店系统 NetShop网店系统完全免费,绝无任何功能上或时间上的限制,非完全开源发布,方便二次扩展,让你放心的使用. 2、基于微软.net架构 基于微软c#+asp.net+sqlserver+Jquery...

netshop ⋅ 2009/12/22 ⋅ 1

编写Flex 阅读器 (二) --------------总结性学习

首先很感谢两位朋友@cyper和@giantchen2011 两位朋友对博文的支持。你们的回复是我的动力。我刚刚开始写博客,内容文字生涩。请大家见谅。也请指正不足之处。 起几天看了书后发现,Flex和Act...

暂时想不到好名字 ⋅ 2012/10/04 ⋅ 0

苹果官网资料备忘录

plist中设置的值 http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html core image http://developer.apple.com/l......

长平狐 ⋅ 2012/08/13 ⋅ 0

Java 缓存介绍:Ehcache、Hazelcast、Infinispan

对于这样的一个问题:最好的 Java 缓存解决方案是哪个? 很难有一个简单的答案,这依赖于不同的应用场景: 是否只需要一个本地的缓存,或者是需要在应用集群中使用的缓存分区 在数据一致性和...

红薯 ⋅ 2013/07/02 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vim编辑模式、命令模式

编辑模式 vim要从一般模式进入编辑模式只要按字母 i 、I、a、A、o、O键就可以了 要从编辑模式回到一般模式按键盘上的Esc键即可。 按键 作用 i 在当前字符前插入 I 在光标所在行的行首插入 o ...

黄昏残影 ⋅ 24分钟前 ⋅ 0

OSChina 周五乱弹 —— 如果有一天不当程序员了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享off的单曲《我唱情歌给你听》 《我唱情歌给你听》- off 手机党少年们想听歌,请使劲儿戳(这里) @小小编辑 :#如果不做程序...

小小编辑 ⋅ 31分钟前 ⋅ 4

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部