一、SpringMVC整合freemarker配置
2、popover显示(信息太长,截取显示,鼠标悬停,显示悬浮框):
1、引入相关jar包:
2、添加freemarker配置bean和视图解析器
二、使用freemarker踩的一些坑
1、关于null值:freemarker对于null值得校验很严格,如果出现null值,而在页面中不进行判断,则会发生异常,通常情况下判断方式有两种:
(1)在页面中使用${prop??}进行判断,或使用${prop?""},若为空则显示“”
(2)可使用配置classic_compatible=true,此种方式只能判断一层,如user.prop为null,显示为空,若user为空,则仍会发生异常。目前的这种情况可使用第一种方式,或者手动创建一个空的对象,保证外层对象不为null即可。
2、freemaker遍历List:
<#list userlist as user></#list>
3、freemarker遍历Map:
<#list userMap?keys as userKey>
key:${userKey}
value:${userMap[userKey]}
</#if>
4、在freemarker页面中使用request对象:配置requestContextAttribute=request,即可使用request,如:
5、freemarker自定义拦截异常:
<#assign webroot=request.getContextPath()>
5、freemarker自定义拦截异常:
新建类
:
FreeMarkerExceptionHandler
配置:template_exception_handler=xxxx.
FreeMarkerExceptionHandler
在web.xml中配置:
6、freemarker定义变量:<#assign name="xxx">,使用:${name}即可
7、freemarker引入其他页面:<#include "xx.ftl">
8、table的td内容自动换行:<td style="word-break:break-all">
9、p标签内容换行:<p style="word-wrap:break-word"></p>
10、实现格式化显示:定义时间显示格式:<#setting datetime_format="yyyy-MM-dd HH:mm:ss"/>
使用:${serviceInfo.createTime?number_to_datetime}
11、在使用jquery的datatable时,如果页面中存在注释,一定要特别注意,不能直接使用<!-- -->这样的注释,要用<#--<!-- 修改中,审核驳回 可修改 –>-->,否则注释内容无效,会被datable的搜索功能识别到。暂时还不清楚是谁的原因导致的。
11、在使用jquery的datatable时,如果页面中存在注释,一定要特别注意,不能直接使用<!-- -->这样的注释,要用<#--<!-- 修改中,审核驳回 可修改 –>-->,否则注释内容无效,会被datable的搜索功能识别到。暂时还不清楚是谁的原因导致的。
三、bootstrap的一些组件使用说明
1、datatable的使用:包括显示中文,搜索,排序,分页等:
2、popover显示(信息太长,截取显示,鼠标悬停,显示悬浮框):
data-content:为完整数据,使用<p>标签,加上
word-wrap:break-word
,保证正常换行,否则不会换行。
3、列表中显示操作下拉菜单:
4、表格中,实现列中的内容超出宽度,自动隐藏配置:(可配合popver使用)
table:style="table-layout: fixed" td :style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"
四、第三方组件使用说明
1、alert对象框:使用sweetalert,网址:
http://www.dglives.com/demo/sweetalert-master/example/
2、json格式化显示:参考1号店开放平台中的js实现
使用<pre>标签,添加brush:js样式即可。主要是json的换行以及着色。可参考网站:
http://alexgorbatchev.com/SyntaxHighlighter/
JSON格式化参考doc.js,格式化后,调用
SyntaxHighlighter.
highlight
();进行高亮显示。
3、js复制内容到粘贴板
(1) 方法一:使用zeroclipboard:http://zeroclipboard.org/ 该方法使用js+flash的方式实现,需要浏览器必须安装flash,否则无法使用,且会造成样式紊乱。
(2)方法二:使用clipboard:https://github.com/zenorocha/clipboard.js ,该方式使用js的方式实现,如果浏览器版本过低则不支持。
使用示例如下:
html页面内容:
js代码内容:
(1) 方法一:使用zeroclipboard:http://zeroclipboard.org/ 该方法使用js+flash的方式实现,需要浏览器必须安装flash,否则无法使用,且会造成样式紊乱。
(2)方法二:使用clipboard:https://github.com/zenorocha/clipboard.js ,该方式使用js的方式实现,如果浏览器版本过低则不支持。
使用示例如下:
html页面内容:
js代码内容:
五:其他
1、反爬虫协议:项目跟路径(webapp)下添加robots.txt文件,内容为:
User-agent: *
Disallow: /
2、防XSS攻击:
添加过滤器:XssFilter:
配置web.xml:
六、freemarker的一些其他使用方式 1、在freemarker中使用layout.extends、layout.put等标签,提高页面重用率,该功能为freemarker提供的自定义标签的实现,此时需要引 入第三方jar包来实现。 (1)引入依赖:(2)引入配置文件,用于解析extends,block,put标签
(3)基础页面:default.ftl(构造页面结构,引入公共css,js,header,footer、menu等公共页面)
(4)实际使用页面:index.ftl(公共css,js等信息已在default.ftl中引入,实际页面只需要引入自己特有的css,js即可)