这个项目是将php上广泛使用的smarty模板语言移植到了java平台上,不提供模板对一些特定php语法的支持,例如<?php>等

smarty4j的函数节点位于org.lilystudio.smarty4j.statement.function.*中,函数使用$开头,后接完整的函数名称,或者在smarty.properties中定义相关的函数路径声明第三方函数库。smarty4j的变量调节器节点位于org.lilystudio.smarty4j.statement.modifier.*中,与函数的名称规则一致,同样在smarty.properties中支持定义扩展包的路径。如果需要自己定义函数和变量调节器,需要分别继续org.lilystudio.smarty4j.statement中的BlockFunction、LineFunction与Modifier类,可以覆写parser方法用于生成二进制类编码,也可以覆写start,end,execute等方法直接写java代码处理函数,相关的说明可以通过导出javadoc文档来查看。

smarty4j使用asm.jar,将模板文件或者字符串编译成java类直接执行,效率比一般的模板解释的方式处理要快。通过在smarty.properties中设置模式能够选择即时更新与不进行更新验证,前者一般用于开发时,后者一般在上线后使用加快处理速度。

对于熟悉smarty语法的做过php开发程序员,在java平台下可以考虑使用smarty4j模板库,使用它可以引入一些php下的smarty资源,加快开发的速度。

调用示例

Engine engine = new Engine();//加载模板引擎

Template template = engine.getTemplate(path); //打开模板文件

Context context = new Context(); // 生成数据容器对象

//这里需要设置数据的值context.set("aaa",123);ByteArrayOutputStream out = new ByteArrayOutputStream(); //设置接收模板数据的输出流template.merge(context, out); // 处理生成结果

smarty java_Smarty for java的使用相关推荐

  1. 关于分布式多级缓存架构,也许你一直考虑的太简单了

    这篇想聊的话题是:「分布式多级缓存架构的终章」,如何解决大流量.高并发这样的业务场景,取决于你能不能成为这个领域金字塔上层的高手? 能不能把这个问题思考清楚决定了你的成长速度. 很多人在一个行业5年. ...

  2. 大厂都拿捏的缓存方案,平台级分布式缓存,什么业务才合适?

    所有程序猿都对那缓存并不陌生,好似那风一样的女子只为你独自而舞.只见那回眸一笑百媚生,让你甚是吝惜,惹人怜爱. 但随着项目规模不断增大变强,光是单个缓存就难以招架,优而显得力不从心. 这时伴随着多级缓 ...

  3. CTF Web方向考点总结

    CTF Web 0X00 前言 做题已经快四个月了,接触了大大小小的题型,收藏的大师傅们的解题思路.题型总结的博客已经很多了,每次都要一个一个翻很麻烦,于是写下了这一个总结,实际上是把各大博客内容汇总 ...

  4. bugku Simple_SSTI_1and 2(SSTI模板注入)

    1.Simple_SSTI_12.Simple_SSTI_2 输入:http://114.67.175.224:15355/?flag={%%20for%20c%20in%20[].class.bas ...

  5. 浅谈服务端渲染(SSR) 与使用场景

    什么是SSR(服务端渲染)MUA? SSR是Server Side Render的缩写,简单来讲:服务端渲染 就是网页上面呈现的内容在服务器端就已经生成好了,当用户浏览网页时,服务器把这个在服务端生成 ...

  6. 攻防世界easy_web

    python-flask-ssti(模版注入漏洞) SSTI(Server-Side Template Injection) 服务端模板注入,就是服务器模板中拼接了恶意用户输入导致各种漏洞.通过模板, ...

  7. 什么是缓存架构,什么又是后端分布式多级缓存架构,全文解析

    缓存,已经是一个老生常谈的技术了,在高并发读的情况下对于读服务来说可谓是抗流量的银弹. 高并发三大利器:缓存.限流.降级. 今天我们就来谈谈缓存.对于缓存,我的理解是让数据更接近于用户,目的是让用户的 ...

  8. 大厂都咋用平台、分布式缓存?起码你要懂技术,高级还得懂业务

    所有程序猿都对那缓存并不陌生,好似那风一样的女子只为你独自而舞.只见那回眸一笑百媚生,让你甚是吝惜,惹人怜爱. 但随着项目规模不断增大变强,光是单个缓存就难以招架,优而显得力不从心. 这时伴随着多级缓 ...

  9. 白头搔更短,SSTI惹人心!

    前言 为什么说Java审计南在SSTI呢? 现行SSTI(Server-Side Template Injection ) 资料不少,但与Java,以著名的先知社区为例(如下图所示),关于SSTI文章 ...

最新文章

  1. ios证书导出不了p12文件_IOS苹果证书无法生成.P12文件解决方法
  2. Linux环境下获取网卡连接状态
  3. WinCE文件目录定制及内存调整
  4. 如何改变Myeclipse编辑区背景色
  5. Android典型界面设计(8) ——ViewPager+PagerSlidingTabStrip实现双导航
  6. 常见测量矩阵的MATLAB实现
  7. ffmpeg添加到环境变量_Windows + MSVC环境编译ffmpeg
  8. System Center 2012 R2 ——基础篇
  9. DCMTK3.5.4与3.6.0版本的区别
  10. 【报告分享】Facebook IQ 2020年热门话题和趋势报告.pdf(附下载链接)
  11. Linux下的 API Hook
  12. Unity Shader播放序列帧动画
  13. yii2 提供接口给java_Yii2 使用 RESTful 写API接口 实例
  14. html 拖拽图片验证,JavaScript实现拖动滑块拼图验证功能(html5、canvas)
  15. java中如何添加画板背景图,几何画板中如何添加背景图片
  16. 原生JS实现图片爆炸特效
  17. linux安装软件时/usr/lib/python2.7/site-packages/urlgrabber/grabber.py文件异常
  18. 大家注意了,猪八戒网上有个骗子
  19. linssh2 sftp读取远端目录,获取远端文件或者目录信息
  20. java 清理页面缓存数据_Web项目中,清理浏览器缓存的几种方式

热门文章

  1. 并查集--武林盟主版
  2. 【Spark Mllib】TF-IDFWord2Vec——文本相似度
  3. 我的CSDN四周年创作纪念日
  4. 智慧渔业时代的深远海养殖平台控制系统
  5. CVE-2020-8558: Kubernetes 本地主机边界绕过漏洞通告
  6. Java入门 笔记分享
  7. 互联网+时代传统行业的创新商业模式
  8. 计算机辅助教育发展趋势 人工智能,浅析计算机辅助教学发展趋势的探讨
  9. 计算机辅助教学的基本概念,心理学基本概念系列文库:计算机辅助教学
  10. Firefox 高手设置大揭密