springboot是一种项目的启动方式,spring官方不建议用jsp,而是使用模板引擎。
在创建项目时勾选的架包
在项目的application.properties中配置视图模板
##配置视图引擎
#模板引擎freemark配置 后缀配置还有ftl
##是否允许请求重写
spring.freemarker.allow-request-override=false
##配置请求作用域
spring.freemarker.request-context-attribute=req
##配置视图模板的后缀名,你可以写html,也可以写ftl
spring.freemarker.suffix=.html
##视图文本类型
spring.freemarker.content-type=text/html;charset=utf-8
##是否打开模板
spring.freemarker.enabled=true
##是否使用缓存
spring.freemarker.cache=false
##模型路径
spring.freemarker.template-loader-path=classpath:/templates/
##编码集
spring.freemarker.charset=UTF-8
##格式化
spring.freemarker.number_format=0.##
然后项目中有一个resources的文件夹,里面有static templates两个文件夹
static是由于存放静态资源的,比如页面的js,images,css等
templates是存放页面的,把html或者ftl的页面存放在这个文件夹中
在之前ssm写的时候controller中怎样传值到页面上,现在在controller中还是一样的
controller中
//如果写ResponserBody会自动转json,那后面的return写的就是返回的值
@RequestMapping("test")
public String test(HttpServletRequest request, Model model){
request.setAttribute("uname","tom");
model.addAttribute("state","3");
int[] arr={12,3,4,5,6511,211111111};
model.addAttribute("arr",arr);
List<Users> list=usersService.findAllUsers();
model.addAttribute("list",list);
//这个时候返回的名称是视图的名称
return "index";//模板的名称
}
页面上
${uname}<br/>
<!--如果uname中有值就用uname中的,没有就是json-->
${uname1!"json"}<br/>
<!--这个效果和上面是一样的,只是显示的是空-->
${uname!}<br/>
<h3>if标签的使用</h3>
<#if state == '0'>
禁用
<#elseif state=='1'>
启用
<#else>
XXX
</#if>
<h3>迭代标签</h3>
<#list arr as li>
${li}
</#list><br/>
<#list list as li>
${li.uname}--${li.age}--${li.address}<br/>
</#list>