1. jade
jade中使用缩进来定义HTML文档的层次结构
jade不需要关闭标签
给div添加id需要用# / 类的话用.
使用|可以连接大段文本主题。会将他们视作一起的内容
`-`开头可以定义一个变量 `=`可以赋值
`- var name='aa'`
`p #{name}`这样就可以使用这个变量了
数组操作:
- arrs = ['haha','hah2','jade']
- each s in arrs
p=s
这样就给每个p里面插入了arrs里面的每个值
对象操作:
- obj = {name:'jake',job:"postman"}
- each val,key in obj
li #{val} :#{key}
条件判断
- locked = false
- if(locked)
p 开锁了
- else
p 锁住了
添加内联脚本:
script
alert('这是jade内联js');
包含 :
include
mixin:
重复使用代码块
mixin users(users)
ul
each user in users
li=user
- list = ['liebiao1','liebiao2','LIBIAO3'];
mixin users(list)
- list2= ['liebiao1','liebiao2','LIBIAO3'];
mixin users(list2)
2.freeMaker
springMVC中用到freemark
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<!-- 配置freeMarker的模板路径 -->
<bean id="freeMarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!--property name="freemarkerSettings" ref="freemarkerConfiguration"/-->
<property name="templateLoaderPaths">
<array>
<value>/WEB-INF/tpls/</value>
<value>/WEB-INF/</value>
</array>
</property>
<property name="freemarkerVariables">
<map>
<entry key="xml_escape" value-ref="fmXmlEscape" />
</map>
</property>
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">0</prop>
<prop key="defaultEncoding">UTF-8</prop>
<prop key="locale">zh_CN</prop>
<prop key="url_escaping_charset">UTF-8</prop>
<prop key="boolean_format">true,false</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="time_format">HH:mm:ss</prop>
<prop key="number_format">0.######</prop>
<prop key="whitespace_stripping">true</prop>
<!--
<prop key="auto_import">/sysTpls/index.ftl as raincc</prop>
-->
</props>
</property>
</bean>
<bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape"/>
<!-- 配置freeMarker视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>
<property name="viewNames" value="*.ftl"/>
<property name="contentType" value="text/html; charset=utf-8"/>
<property name="cache" value="true" />
<property name="prefix" value="" />
<property name="suffix" value="" />
<property name="order" value="2"/>
</bean>
</beans>
java代码:
package com.jt.xiaoyang.util;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.apache.log4j.Logger;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import freemarker.template.Template;
import freemarker.template.TemplateException;
@Component
public class MailSender {
@Resource(name = "javaMailSender")
private JavaMailSender javaMailSender;
// @Resource(name = "configuration")
// private Configuration configuration = new Configuration();
@Resource(name = "freeMarkerConfig")
private FreeMarkerConfigurer freeMarkerConfigurer;
private static Logger _log = Logger.getLogger("email");
public boolean senderTxt(String to, String cc, String content) {
return true;
}
//在spring的配置文件中加入对异步执行的支持
@Async //1.某些耗时较长的而用户不需要等待该方法的处理结果 2.某些耗时较长的而用户不需要等待该方法的处理结果
public void senderHtml(String to, String[] cc, String title, String content, String account) {
_log.info("send mail::" + to + "|" + cc + "|" + title + "|" + content);
MimeMessage mailMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "utf-8");
messageHelper.setTo(to);//接受者
if (cc != null && cc.length > 0) {
messageHelper.setCc(cc);
}
Template template = freeMarkerConfigurer.getConfiguration().getTemplate("tpls/mail_common.ftl");// = configuration.getTemplate("tpls/mail_common.ftl");
// StringWriter sw = new StringWriter();
Map<String,Object> param = new HashMap<String, Object>();
param.put("catpcha", content);
String finalContent = FreeMarkerTemplateUtils.processTemplateIntoString(template, param);
// template.process(param, sw);
InternetAddress address = new InternetAddress("message@demodemo.cc", "小样儿");
messageHelper.setFrom(address);//发送者
messageHelper.setSubject(title);//主题
messageHelper.setText(finalContent, true);
javaMailSender.send(mailMessage);
_log.info("发送完毕");
} catch (MessagingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}