使用Velocity模板发送邮件的问题 最近做一个监控项目,需要发送邮件预警,选择了使用Spring整合velocity 模板发送邮件,遇到了2个问题: 问题1:中文乱码变成了????...下面分享解决这两个问题的方案: 1.spring中整合Velocity的配置文件需要指定UTF-8: 模板 配置开始...--> velocity.VelocityEngineFactoryBean...emailFrom); message.setSubject(emailSubject); //无效,因为到邮件服务器上后,根据该路径取的是邮件服务器相对路径的文件...message.setText(text, true); } }; this.javaMailSender.send(preparator); } 3.模板文件
通常velocity是配合spring mvc之类的框架在web中使用,但velocity本身其实对运行环境没有过多的限制,在单独的java application中也可以独立使用,下面演示了利用velocity...模板引擎生成 『每日发货单』邮件内容: 一、先定义邮件内容模板:mail-template.vm 用户,您好: 以下是 $date.format('yyyy-MM-dd...classpath.resource.loader.class", ClasspathResourceLoader.class.getName()); ve.init(); //加载模板..., getOrder()); StringWriter sw = new StringWriter(); t.merge(ctx, sw); //输出...2); o.getItems().add(item1); o.getItems().add(item2); return o; } } 运行的输出结果
Velocity简介 Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象。...页面再由VelocityViewServlet或任何支持Velocity的框架处理。 源代码生成:Velocity可基于模板生成Java、SQL或PostScript源代码。...Anakia读取XML文件,利用Velocity模板转换成所需的文档格式。常见的应用是将某种格式的文档转换成的一个带样式的HTML文档。...然后我们就可以往VelocityContext这个Velocity容器中存放对象了,在vm文件中我们可以取出这些变量,从而进行模板输出. 2.2 编写hellovelocity.vm文件 其中,vm文件放在...指令会将外部文件原样输出,而parse指令会先对其进行解析再输出(即对外部文件中的vm语法解析) #parse("header.vm") #include("footer.vm") 4.
用户在使用Mapreduce时默认以part-*命名,MultipleOutputs可以将不同的键值对输出到用户自定义的不同的文件中。...key.toString()); 方法时候第三个参数是 public void write(KEYOUT key, VALUEOUT value, String baseOutputPath) 指定了输出文件的命名前缀...,那么我们可以通过对不同的key使用不同的baseOutputPath来使不同key对应的value输出到不同的文件中,比如将同一天的数据输出到以该日期命名的文件中 Hadoop技术内幕:深入解析MapReduce...States 22.71.176.163 United States 105.57.100.182 Morocco 111.147.83.42 China 137.157.65.89 Australia 该文件中每行数据有两个字段...方法中 output = new MultipleOutputs(context); 然后在reduce中通过该output将内容输出到不同的文件中 private Configuration
case 两个工程 Proj1 和 Proj2,同时包含 demo.cpp,其中 Proj1 在工程配置里预定义宏 MACRO_PROJ1,Proj2 在工程配置里预定义宏 MACRO_PROJ2,两个工程的中间文件输出目录为同一个...Proj1.exe 输出output by proj1,Proj2 输出output by proj2,但是……意外发生了: 会发现一定的概率下,两个 exe 输出的内容相同,至于是output by...analysis 在出问题的情况下,既然 Proj1.exe 和 Proj2.exe 输出一致,那么可以推测生成两个 exe 的源中间文件 demo.obj 是一样的,明明在两个工程里根据宏定义,预编译过后的源代码是不一样的...,怎么会出现生成的 obj 文件一样的情况呢?...confirmation 更改 Proj1 与 Proj2 两个工程的中间文件输出目录为两个不同的目录,问题不再发生。 Done!
生成多个文件脚本 #coding=utf-8 #import os #import sys sql1Script = ''' use scrm_%s; -- 公司code需替换为相应公司的code CREATE...for item in db_name: sql1 = sql1Script % (item, item) script = sql1 # 生成脚本文件...."w") fp.write(script) fp.close() if __name__ == "__main__": init_sql_execute() 将多个文件输出到一个文件中.../usr/bin/python #encoding:utf-8 import os # 目标文件夹的路径 filedir = r'/data/test' #获取目标文件的文件名称列表 filenames
有点类似于C语言 print("%s,%d,%d"%(name ,age ,school))
1 import java.io.InputStream; 2 import java.io.Reader; 3 import java.net.U...
$this->assign('design_img',$design_img); //thinkphp 一维数组输出
在正常调用过程中,难免需要对多个文件夹下的多个文件进行读取,然而之前只是明确了spark具备读取多个文件的能力。...针对多个文件夹下的多个文件,以前的做法是先进行文件夹的遍历,然后再进行各个文件夹目录的读取。 今天在做测试的时候,居然发现spark原生就支持这样的能力。 原理也非常简单,就是textFile功能。...编写这样的代码,读取上次输出的多个结果,由于RDD保存结果都是保存为一个文件夹。而多个相关联RDD的结果就是多个文件夹。... val alldata = sc.textFile("data/Flag/*/part-*") println(alldata.count()) 经过测试,可以实现对多个相关联...RDD保存结果的一次性读取。
大家讨论的最多的应该是官方什么时候可以提供mxd模板和数据库呢,没有提供的具体原因不太清楚。...第三个要注意一下: 数据说明: 1、图件成果的mxd文件采用ArcGIS 10.4版本编制 2、在打开mxd文件前,需将字体库文件夹中的字体复制安装到文件夹C:\Windows\Fonts中 那我们就把字体也下载了...二、标准地图的mxd模板 下载好模板之后,字体也按照要求放入到相应的文件夹,那我们就打开mxd文档看看,里面的图层数据是如何的,以西藏自治区地图基本要素版A2-制图资源为例,打开后如下图: 有了这个模板之后...4、比例尺及图例 注意:比例尺最好也不要做任何调整,图例可做适当调整,或者维持图例原样,然后新建一个专题图例放置。...各位可自行斟酌或者电话咨询西藏的官方部门。 以上是我自己提供的几点注意事项,不对的地方,各位请留言指正。
简单的文件I/O 写入文件: 让程序写入文件,其步骤大致为如下: 创建一个ofstream对象来管理输入流; 将该对象与特定的文件关联起来; 用使用cout的方式使用该对象,唯一的区别是输出将进入文件...fout << "hello"; //#3 将hello写入a.txt中 【注:以默认模式打开文件(即上述方式)进行输出将自动把文件的长度截短为零,这相当于删除已有的内容。...读取一个字符放入ch 【注:当输入和输出流对象过期(如程序终止)时,到文件的连接将自动关闭。...fstream类为此继承了两个方法:seekg()和seekp(),前者将输入指针移到指定的文件位置,后者将输出指针移到指定的文件位置(实际上,由于fstream类使用缓冲区来存储中间数据,因此指针指向的是缓冲区中的位置...因此该语句将写入位置设置为编号为112的字节,也就是文件中的第113个字节 【注:如果要检查文件指针的当前位置,则对于输入流,可以使用tellg()方法,对于输出流,可以使用tellp()方法。
小巧的文件模板工具 由 Ghostzhang 发表于 2016-12-14 22:47 工作中常有一些小页面,结构是一样的,换换图、换换文字就是一个新需求。...对于我们来说,就是把文件复制一份,然后找到里面要修改的位置换上所要的文字,这是很简单的事情。一次可以,二次可以,三次、四次、N+1次之后呢?枯燥随之而来,一不小心改错位置或漏改、删错标签。...在一个以内容发布为主的需求中,一般与之相对应的发布系统都是比较后面才会实现的, TIDemo是一个小巧的模板工具,通过制作简单的模板文件,即可实现将模板中需要更换的内容生成对应的表单,提供更直观的输入体验...TIDemo支持自定义变量,将变量在界面上以表单的形式展示,通过填表单的方式输入内容,然后导出为填内容之后的文件。...经过几年的更新,当前版本已经支持包括循环输出、数据导入、数据筛选、输出二维码等功能,基本能满足常见的简单内容维护工作。
现在开始创建模板,这个模块在什么地方都可以,最后只要路径对了就可以,我们习惯放到resources文件夹下 以上先创建一个HTML模板,之后修改这个文件的后缀,变为vm 以上是最简单的语法。...的模板文件 Template template = Velocity.getTemplate("vms/01-quickstart.vm", "utf-8"); //...,那么在新的文件夹下,就会生成一个HTML文件 总结 就是前端写velocity模板,后端写代码,将数据填充到模板里面,生成HTML文件 以后就是 填充的内容需要是动态的,使用的模板是动态的,输出的HTML...填充到模板中的数据 * @param templates 模板的名称 * @param zip 输出流 * @date 2021/8/25--22:01...= new VelocityContext(date); // 4 加载velocity的模板文件(因为有多个,所以要遍历) for(String tem:templates
方式 描述符 含义 stdin 0 标准输入 stdout 1 标准输出 stderr 2 标准错误输出 1.想要把make输出的全部信息,输出到某个文件中 最常见的办法就是:make xxx > build_output.txt...2.只需要把make输出中的错误(及警告)信息输出到文件中ing,可以用: make xxx 2> build_output.txt 相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息...C++ 例如: make 2> my_make_err.log 3.只需要把make输出中的正常(非错误,非警告)的信息输出到文件中,可以用: make xxx 1> build_output.txt...,正常信息和错误信息,都输出到对应文件中了。...所有的信息都输出到同一个文件中: make xxx > build_output_all.txt 2>&1 C++ 1 例如: 2 3 make > my_make.log 2>&1 其中的2>&1表示错误信息输出到
原来是一个so文件中的构造函数被初始化二次!...这个单例是通过继承模板来实现的(暂时不考虑线程安全的问题) template class CSingleT { public: static T * Instance()...Instance(),实际上的结果是直接调用跟通过静态方法调用,会初始化二次单例对象 目前暂时的处理方法是,主线程中通过调用.so的静态方法,在该静态方法中调用Instance的方法,这样就只会产生一个实例对象了...这里暂时没涉及到多线程程的问题,所以也没有加上线程安全的全码 通过静态方法,然后再调用实例对象,这确实是一个很糟糕的方法,为了游戏能跑,暂时这样处理了。...参考: 动态库之间单例模式出现多个实例(Linux) C++中模板单例的跨SO(DLL)问题:RTTI,typeid,static,单例
注意为相对路径,则以引擎配置的文件加载器加载路径作为参考系,而不是当前模板文件的路径为参考系。 7....注意为相对路径,则以引擎配置的文件加载器加载路径作为参考系,而不是当前模板文件的路径为参考系。 ...示例2——定义与调用位于不同的模板文件时,需要遵守先定义后使用的规则: ## 模板文件macro.vm #macro(log $msg) log message: $msg #end ## 模板文件main.vm...若定义与调用位于不同的模板文件中时,由于 #parse 是引擎解析模板文件时才被执行来引入外部资源并对其中的宏定义进行初始化,因此必须遵循先定义后使用的规则。 ...我们可配置全局宏库,配置方式如下: Properties props = new Properties(); // velocimacro.library的值为模板文件的路径,多个路径时用逗号分隔 //
首先,如果你对Velocity不是很了解,还是建议你去apache的官方网站上去走走.......这是velocity的官网:http://velocity.apache.org/ 当然如果你对英文文档不是很感冒,这里也有好的资料: Velocity 文档(1) Velocity 文档(2) Velocity...文档(3) 下面我就正式说说我做的项目啦......运行"helloWorld.vm"模板效果: ? 运行"userInfo.vm"模板效果: ? 运行"emailTemplate.vm"模板效果: ?...的乱码问题啦...
配置多个配置文件 配置文件名需要满足application-{profile}.properties的格式。...{profile}对应的是环境标识,比如: application-dev.properties :开发环境 application-test.properties:测试环境 application-prod.properties...:生产环境 每个文件中可以配置不同的数据库地址,端口号等。...在application.properties中的配置动态配置文件,如下所示: spring.profiles.active: @spring.profiles.active@ 3. pom文件中配置相关...-SNAPSHOT.jar 发表时间:2020-08-24 本站文章除注明转载/出处外,皆为作者原创,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利
领取专属 10元无门槛券
手把手带您无忧上云