SpringBoot-集成
1、SpringBoot项目-如何去支持jsp
在boot的项目中本身是默认不支持jsp的,因为在boot的工程中都是静态模板和静态资源。
1.1、引入两个依赖:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
1.2、在idea中配置这样的结构如图:
1.3、然后在属性文件配置下访问jsp的前后缀,代码如下:
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
1.4、然后写访问jsp的Controller,代码如下:
package com.boot.jsp.bootjsp.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class JspController {
@GetMapping("/jsp")
public String index(){
return "index";
}
}
1.5、在这里来运行:因为boot项目是不支持war的,所以想要运行带有jsp项目的需要这样启动boot项目。
1.6、运行的访问结果如下:
总结:在springBoot中很少使用jsp来集成的,为了演示下,所以写了下。
2、SpringBoot集成freemarker
2.1、引入freemarker的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
2.2、freemarker是一个静态的模板引擎,默认的位置是在templates的目录下的,后缀名是.ftl,代码如下:
在属性的配置文件里可以配置关于静态模板的一些属性,后面会写到。
网站参考:https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
2.3、写一个Controller,代码如下:
package com.boot.freemarker.bootfreemarker.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class TestFremarkerController {
@GetMapping("/demo/index")
public String index(){
return "index";
}
}
2.4、去访问测试下:
2.5、把数据传到模板引擎的页面上,代码如下:
@GetMapping("/demo/data")
public String data(Model model){
Map<String,Object> map=new HashMap<>();
map.put("username","魏召阳");
map.put("age",25);
model.addAttribute("user",map);
return "index";
}
2.6、freemarker页面上获取数据:
2.7、运行的结果如下:
3、SpringBoot集成thymeleaf:它比freemarker要好用,它的后缀名是html,默认的前缀名是classpath:/templates下的,这里可以放很多种模板,不只这两种的静态模板。
3.1、首先建个index.html:
如果想要让thymeleaf给你提示的话,需要加上下面的一句话:它的命名空间。
定义的controller如下:
package com.boot.thymeleaf.bootthymeleaf1.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class ThymeleafController {
@GetMapping("/demo/index")
public String index(){
return "index";
}
}
发布下项目并访问下:
把值页面到页面上去的方法,代码如下:
@GetMapping("/demo/data")
public String data(Map<String,Object> map1){
map1.put("username","魏召阳");
map1.put("age",18);
return "index";
}
页面的代码如下:
访问的结果:
4、静态资源的配置
spring.resources.staticLocations=修改静态资源的路径
默认的静态资源的位置是在static目录下的。访问的时的映射路径为/**。
4.1在staitc目录下放一张图片,然后去启动下项目。
4.2、访问下,图片的文件名不要命名为数字,否则访问不了。
注意:一般的情况的时候不用去修改静态资源的路径,因为当项目部署到nginx服务器上的时候,还需要加一个views这个文件夹。