如何实现项目启动就加载spring核心配置文件,生成各种bean:将spring核心配置文件放到web.xml中;
FreeMarker相关配置放到springmvc核心配置文件中;
控制器中,将vo对象放到ModelAndView对象中,返回给前台,FreeMarker接收ModelAndView对象并进行解析生成html在页面展示;
FreeMarker自带指令使用#开头,自定义指令使用@开头;
对于单引号和双引号,FreeMarker是没有区别的;
两个问号:用于判断变量是否存在;?exists 语法具有相同效果;
Java数据类型:
FreeMarker取值指令:
常用取值语法;
对null、不存在对象取值语法;
取包装对象的值;
FreeMarker取Java基本数据模型的值:
boolean类型值得format:
FreeMarker不支持输出boolean类型的true和false,只能输出经过转化的yes和no;
date类型值得format:
Controller层的Model里面返回的Date类型必须是java.sql.Date,这样Freemarker才能转义输出到页面,而不能是java.util.Date;但我们经常使用的是java.util.Date,所以要使用string函数进行转义;
null或者不存在的变量取值:
变量的定义、赋值、运算:
自定义对象User变量的取值:
集合List的遍历:
集合Map的遍历:
if语法:
switch的语法:
string基本操作指令:
连接:+ 截取:substring() 长度:length 大写:upper_case 小写:lower_case
位置:index_of、last_index_of 替换:replace
自定义函数:
自定义业务类,实现TemplateMethodModelEx接口,实现exec方法,进行具体的业务处理;
控制器的业务方法中,将业务类对象以key-value形式放到ModelAndView中,并返回;
在html文件中,使用key作为自定义函数名进行具体操作;
注意点:FreeMarker有自己的数据类型,在自定义函数中,它的入参类型是FreeMarker中的数据类型,所以先用FreeMarker中的数据类型来接收入参,然后再转成Java中的数据类型;
List排序内建函数、常用指令:
sort reverse size
自定义指令:
自定义业务类,实现TemplateDirectiveModel接口,实现execute方法,进行具体的业务处理;
在springmvc核心配置文件中,配置自定义指令:包括指令的名字,引用的实现类;
在html页面中使用自定义的指令,进行具体操作;
注意:
业务类中使用FreeMarker的数据类型来接收参数;
自定义指令使用@开头;
FreeMarker常用内建函数:
处理字符串的内建函数:
substring cap_first ends_with contains
date datetime time
starts_with index_of last_index_of split trim
处理数字的内建函数:
string x?string(“0.##”)
round floor ceiling
处理List的内建函数:
first last seq_contains seq_index_of
size reverse sort sort_by
chunk
其他内建函数:
is函数:is_string is_number is_method
() has_content
eval求值
宏macro、nested指令:
函数function、return指令:
我的订单各个展示页面:
Java中常用的数据类型;
取值(插值)指令;
逻辑指令:if、else;
取值(插值)指令:
常用取值语法;
对null、不存在对象取值语法;
取包装对象的值;
取值的时候进行计算、赋值;
Date类型转成String类型;
知识大纲:
Java数据类型、FreeMarker取值;
FreeMarker取Java基本数据模型的值;
boolean类型值得format;
date类型值得format;
null或者不存在的变量取值;
变量的定义、赋值、运算;
自定义对象User变量的取值;
集合List的遍历;
集合Map的遍历;
if语法;
switch的语法;
string基本操作指令;
自定义函数;
List排序内建函数、常用指令;
自定义指令;
FreeMarker常用内建函数;
macro、function指令;