- 浏览: 764915 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
飞出四季做的茧:
z赞
JAVA日期格式化字符串的24小时制 -
daniaowansui:
亲测,可行!
JS 在open打开的窗口中调用父页面JS方法 -
zh_123:
ie9测试过吗貌似列不能冻结啊!
Css 实现的表头, 表列冻结, 可以超大数据量 -
Jxdwuao:
IXR 写道少年,在哪里混呢?在虹桥机场这边阿, 兄弟你在何方 ...
修改JS文件FF刷新不生效 -
IXR:
少年,在哪里混呢?
修改JS文件FF刷新不生效
工程中使用了邮件和短信模板,,
内容使用的html代码, vm文件。
可以使用Spring 的解析工具解析,替换其中的动态数据 。
FreeMarker解析:
@Autowired private FreeMarkerConfigurer freeMarkerConfigurer; public String getFtlText(Map data,String ftl){ String htmlText=null; Template tpl = null; try { tpl = freeMarkerConfigurer.getConfiguration().getTemplate(ftl);//加载资源文件 htmlText = FreeMarkerTemplateUtils.processTemplateIntoString(tpl, data);//加入map到模板中 对应${content} } catch (IOException e) { e.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } return htmlText; }
注: 其中的 freeMarkerConfigurer 可以在Spring中配置如下:
<bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPaths" value="classpath:template/sms" /> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">1800</prop><!-- 模板更新延时 --> <prop key="default_encoding">UTF-8</prop> <prop key="locale">zh_CN</prop> </props> </property> </bean>
VM 文件 :
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>处理中</title> </head> <body> <div style="background:#F6F5F6;padding:5px;width:630px;font-size:12px;color:#2D2D2D;font-family:tahoma"> <table style="background:#fff;width:630px;border-spacing:0;border-collapse:collapse;font-size:12px;color:#2D2D2D;font-family:tahoma"> <tr> <td style="background:#FEEAC2;height:32px;line-height:32px;padding:0;"> <table style="width:100%"> <tr> .................此处几乎不使用图片,且样式全部套在标签内................. .................................... .................................. <tr> <td style="padding-bottom:10px;">很高兴通知您以下订单已经成功提交: </td> </tr> <tr> <td style="padding:5px 0;font-weight:bold;">订单详情</td> </tr> <tr> <td style="padding:5px 0;">城市: [${hotelOrder.cityName}]</td> </tr> <tr> <td style="padding:5px 0;">酒店名称: ${hotelOrder.hotelName}</td> </tr> <tr> <td style="padding:5px 0;">入住日期:${hotelOrder.strEnterDate}</td> </tr> <tr> <td style="padding:5px 0;">入住天数: ${hotelOrder.leaveDay} </td> </tr> ................................................. ................................................. .................................................
解析的方法:
data.put("module", 2); data.put("orderNo", orderNo); data.put("email", email); data.put("hotelOrder", hotelOrder); getContent(data,templateId + ".vm"); public String getContent(Map dataMap,String vmString) { String body = getBody(dataMap, vmString); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); try { response.getWriter().append(body); response.flushBuffer(); } catch (IOException e) { e.printStackTrace(); } return NONE; } public String getBody(Map<String, Object> dataMap, String tpl) { String body = VelocityEngineUtils.mergeTemplateIntoString( velocityEngine, tpl, dataMap); return body; }
发表评论
-
JDK8开发STREAM流Collectors.toList()出现NULL异常
2025-01-15 17:31 0JAVA使用流式开发,总是在最终排序汇总的行报错 ... -
NGINX配置简单的MOCK接口
2024-10-15 17:25 0公司中需要对应用进行压测,需要不影响接口返回速度的情况下,返 ... -
RabbitMQ消息关闭自动启动
2024-09-23 11:34 0应用配置的RabbitMQ一启动就注册监听器,这样 ... -
应用内存长期80%不下降
2024-06-21 18:13 0观察到应用JVM长期85%以上,堆内存小幅度波动,没有变化, ... -
内存80告警
2024-05-24 11:08 0网关内存到了85%, 查看近几天内存一直小幅波动,没有下降 ... -
Eclipse设置护眼色
2022-06-17 09:04 0编辑区背景色 1.背景颜色 Window->Pre ... -
java证书安装和更新/删除
2022-01-19 15:02 1139拿到证书,如 ****2019.cer。在WIN下面,双击 ... -
CLASS文件目录不执行更新,改了代码不生效
2021-12-02 16:56 0class目录下不编译, 更新了代码运行还是老的内容执行. ... -
Struts2导出多Excel压缩包
2021-09-28 16:34 0Struts2配置 <result name= ... -
8080端口不能访问
2021-07-21 23:11 0电脑装好之后,本机能访问,外机通过IP不能访问,关闭防火墙可 ... -
JVM设置中文编码
2021-07-05 11:46 0用CXF2.0做了一个接口转发服务,调用后发现中文出现乱码, ... -
自动发布没有通知更新缓存
2021-01-15 10:17 0问题 在成功测试完成平台的一个版本, 测试计划出测试报告 ... -
Eclipse 查看本地历史记录
2020-09-03 16:39 0Eclipse 在更新后,发现本地修改的代码不见了,可以使 ... -
SPRINGBOOT定时器中断不跑了测试
2020-08-05 21:43 0一次发布之后, 定时器不跑了, 追查了TOMCAT 日志, ... -
LOG4J多项目同TOMCAT后面项目不生成日志文件
2020-04-28 10:35 0在项目的TOMCAT里新增加一个监控的项目, 发现监控项目 ... -
DUBBO配置多环境
2019-11-07 16:49 0需要在Springboot2项目中配置DUBBO, Dub ... -
SOAPUI中文乱码
2019-10-23 11:05 0用SOAPUI调用报错UTF-8,参数中有中文。看到返回错误 ... -
JAVA中SET集合判断是否包含的坑
2019-10-22 14:18 0SET集合中存放航班信息对象FlightBoardQuery ... -
定时器任务缓慢
2019-10-09 13:51 0值机系统在国庆前定时器不再执行了。查日志Spring定时任 ... -
NGINX配置
2019-05-28 16:17 0在测试环境LINUX安装后,调试了很久跳转TOMCAT不通 ...
相关推荐
以上是对Velocity和FreeMarker的基本介绍和比较,它们都是Java Web开发中的重要工具,理解它们的特性和应用场景有助于选择最适合项目的技术栈。对于标签“源码”和“工具”,我们可以进一步研究这两个模板引擎的源...
5. **模板配置**:可以通过`freemarker.cfg.properties`文件配置模板解析的全局选项,如编码、日期时间格式等。 **Velocity** Velocity是Apache软件基金会的一个项目,它的设计理念与Freemarker类似,但语法略有...
1. **解析速度**:这是指模板引擎处理模板并生成Java字节码的速度,这直接影响到应用的启动时间和响应时间。 2. **运行效率**:运行效率涉及模板渲染的速度,尤其是在数据量大或频繁调用的情况下。 3. **内存消耗**...
Velocity允许通过自定义工具类(Velocity Tools)和宏库(Macro Library)扩展其功能。例如,可以创建自定义的函数库,方便在模板中调用复杂的功能。同时,通过合理的缓存策略和配置,可以进一步提升Velocity的性能...
这是一个基于Java技术栈的应用实例,整合了多个关键的开源框架,包括Maven、SpringMVC、MyBatis、FreeMarker和Velocity。这些技术在IT行业中广泛应用于开发企业级Web应用程序,构建高效、灵活且可维护的系统。接下来...
在使用时,通常需要将这些库添加到项目的类路径中,以便Velocity能够正确运行和解析模板。在Web应用中,这通常通过在`WEB-INF/lib`目录下放置这些JAR文件来实现。开发人员可以使用Velocity模板语言(VTL)编写模板,...
总结来说,“利用Freemarker制作的Diamante生成器”是一个利用Java反射和Freemarker模板技术实现的代码自动生成工具,通过解析类的元数据并结合预定义的模板,可以快速生成符合业务逻辑的代码。这种工具在大型项目或...
- Nutz的MVC模式中,视图层支持多种模板引擎,包括JSP、Velocity、Freemarker等。 2. **Freemarker**: - Freemarker是一个模板语言,它与Java代码分离,使得开发者可以专注于页面布局和设计,而无需关心业务逻辑...
3. **velocity工具箱(Velocity Tools)**:提供了一系列工具类,简化了在模板中处理日期、集合等操作,提高开发效率。 4. **VelocityEngine**:是Velocity的核心组件,负责解析模板、设置配置、管理上下文等任务。...
通过`freemarker.template.Configuration`类,你可以设置Freemarker的配置,比如模板加载路径、模板语言版本、错误处理策略等。这有助于统一项目中的模板处理方式。 6. **实际应用** Freemarker广泛应用于Web开发...
1. **模板语言**: Velocity 使用简单的模板语言,允许开发者在模板文件中插入变量和控制结构,如 #if、#foreach 等,这些语句会被 Velocity 引擎解析并替换为对应的 Java 对象值。 2. **上下文(Context)**: 上...
Velocity与JSP、FreeMarker等其他模板引擎相比,更注重模板语言的简洁性和安全性。与JSP相比,Velocity不鼓励在模板中编写复杂的Java代码,从而降低了出错的可能性和提高了代码的可读性。 总之,Velocity是一个强大...
在实际应用中,FreeMarker还可以与其他工具结合,比如Apache Velocity,它们都是模板引擎,但各有特点。FreeMarker的语法更为灵活,支持更多的控制结构,而Velocity的语法更加简洁。 关于源码分析,FreeMarker的...
- **FreeMarker**: FreeMarker 是另一个流行的 Java 模板引擎,它的语法比 Velocity 更为复杂,但功能更强大,适合复杂的模板逻辑。 - **JSP**: JSP 也是常见的视图技术,但它的动态代码嵌入到 HTML 中,易引发维护...
开发者可以通过注解来简化控制器的编写,同时Spring MVC支持多种视图技术,如JSP、FreeMarker、Velocity等。 **Mybatis**:Mybatis是一个轻量级的持久层框架,它解决了Java开发中的数据库操作问题。Mybatis通过XML...
- **Velocity/Thymeleaf**: FreeMarker与类似的模板引擎相比,各有优劣,选择时需考虑项目需求和团队熟悉度。 以上是对FreeMarker的基本介绍,包括其核心概念、语法特性以及在Web应用中的使用。通过深入学习和实践...
- **数据模型**:Freemarker模板中的数据来源于应用程序,如Java对象、Map或列表,它们被映射到模板变量供渲染使用。 2. **Freemarker语法** - **变量**:以`${}`包裹的表达式用于输出变量值,如`${name}`。 - *...
综上所述,FreeMarker是一款功能全面且强大的模板引擎工具,不仅能够满足基本的Web页面生成需求,还提供了丰富的特性和高级功能,以适应更加复杂的应用场景。相比于Velocity等其他同类工具,FreeMarker在灵活性、...
### FreeMarker设计指南知识点解析 #### 一、FreeMarker概述 **FreeMarker**是一个功能强大的模板引擎,专门用于根据预定义的模板生成各种文本输出,包括但不限于HTML网页、XML文档、RTF文件甚至Java源代码等。该...
**工作原理**:Freemarker的核心是将模板文件和数据模型结合在一起,通过解析模板中的特殊标记(如变量引用、条件判断、循环等)并替换为实际的数据值,从而生成最终的输出文本。 **示例**: ```html ... Hello ...