2月27
<meta name="viewport" content="width=device-width,initial-scale=1.0">
content属性值 :
width:可视区域的宽度,值可为数字或关键词device-width
height:同width
intial-scale:页面首次被显示是可视区域的缩放级别,取值1.0则页面按实际尺寸显示,无任何缩放
maximum-scale=1.0, minimum-scale=1.0;可视区域的缩放级别,
maximum-scale用户可将页面放大的程序,1.0将禁止用户放大到实际尺寸之上。
user-scalable:是否可对页面进行缩放,no 禁止缩放
2月27
有一个邮件模板,例如:
亲爱的用户${name},你好,欢迎加入xx系统平台。这种简单的不想去依赖freemarker、velocity这种模板引擎框架,所以自己用正则实现了,如下:
/**
* 替换模板标签变量
*
* @param params 变量键值
* @param templetConent 模板内容
* @return
*/
public String replaceTempletTags(SmsParams params, String templetConent) {
String smsContent;
try {
//生成匹配模式的正则表达式
String patternString = "\\$\\{(" + StringUtils.join(params.getSmsParam().keySet(), "|") + ")\\}";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(templetConent);
//两个方法:appendReplacement, appendTail
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, params.getSmsParam().get(matcher.group(1)).toString());
}
matcher.appendTail(sb);
smsContent = sb.toString();
} catch (Exception e) {
throw new RuntimeException("解析模板并替换标签值时失败!" + e);
}
return smsContent;
}
亲爱的用户${name},你好,欢迎加入xx系统平台。这种简单的不想去依赖freemarker、velocity这种模板引擎框架,所以自己用正则实现了,如下:
/**
* 替换模板标签变量
*
* @param params 变量键值
* @param templetConent 模板内容
* @return
*/
public String replaceTempletTags(SmsParams params, String templetConent) {
String smsContent;
try {
//生成匹配模式的正则表达式
String patternString = "\\$\\{(" + StringUtils.join(params.getSmsParam().keySet(), "|") + ")\\}";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(templetConent);
//两个方法:appendReplacement, appendTail
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, params.getSmsParam().get(matcher.group(1)).toString());
}
matcher.appendTail(sb);
smsContent = sb.toString();
} catch (Exception e) {
throw new RuntimeException("解析模板并替换标签值时失败!" + e);
}
return smsContent;
}




