SpringBoot视图层:(1)freemarker标签使用

注意:在springboot里面使用freemarker时,必须在src/main/resources下建立templates文件夹,freemarker文件都放在该templates文件下

springboot所引入的freemarker的pom依赖:


    org.springframework.boot
    spring-boot-starter-freemarker

 附:如果使用idea开发freemarker的话,idea是直接支持freemarker模板的,但是如果使用的是eclipse的话,是不支持的,就可以使用另外一个软件:HBuilder,打开后,点击文件-->打开目录-->浏览,选择目标项目后,在HBuilder编辑文件会在eclipse里面同步显示的

1.??和?的区别

??是判断对象是否为空,例如:<#if object??>object对象不为空(即object存在)

?后面要加关键字

①用?判断是否为空,和??类似,但要在?后面加上关键字

<#if object?exists>${object} 

②其他一些用法

 ${nowDate?time} (将当前时间以时间的格式显示,如:11:11:11)
 ${nowDate?date} (将当前时间以日期的格式显示,如:2018-8-3) 

  注:time、date的格式可以在freemarker.properties文件中配置

${boolean?string("yes","no")}

freemarker中输出时可以使用这种方式输出${xxx?string("true","flase")}xxx为true时显示字符串true,否则为字符串false,当然true,false字符串也可以换成其他字符串,比如yes和no。

<#assign answer=42/> 
${answer} 
${answer?string} <#-- the same as ${answer} --> 
${answer?string.number} 
${answer?string.currency} 
${answer?string.percent} 
${answer} 
输出结果是: 
$42.00 
$42.00 
42 
$42.00 
4,200% 

2.!作用

例如:${user!"123"},如果user是空值的,那么就把后面的"123"取出来,可以预防空值

3.遍历list

#list是遍历的类型,userList是需要迭代的对象,user是取出的每一个对象放进了临时变量user里面

<#list userList as user >
    
        ${user.userId}
        ${user.userName}
        ${user.userAge}
    

4.遍历Map

遍历keys集合

#list 遍历集合类型,userMap是需要迭代的对象,userMap?Keys判断userMap是否为空,不为空返回keys(关键字)即键集合,key 临时存放的变量

<#list userMap?keys as key>
    key:${key}----value:${userMap[${key}]}

遍历values集合

<#list userMap?values as value>
    ${value}

5.if,else和elseif标签

<#if target??>
 
    xxxx
 

上面这段代码判断target??是否为null,如果不为null时才可以执行if里面的内容,为null时则不进到

<#if student.studentAge lt 12>  
    ${student.studentName}是一个初中生  
<#elseif student.studentAge lt 15>  
    ${student.studentName}是一个高中生  
<#elseif student.studentAge lt 18>  
    ${student.studentName}是一个大学生  
<#else>  
    ${student.studentName}是一个大学生  
 

 注意:

gt: 测试一个数是否大于另一个数;大于,为真;否则,为假;

lt测试一个数是否小于另一个数;小于,为真;否则,为假;

你可能感兴趣的:(SpringBoot)