在上次的学习中,我成功的完成了Springboot的HelloWorld,但是我在编写Controller的时候使用的是@RestController注解,这个注解是Spring4.0新出的一个注解,我觉得他是@Controller+@ResponseBody两个注解的集合,专门为那种响应式的Controller而设计的,可直接返回Json对象。@Controller就是用来响应页面的。SpringBoot可用的模板引擎有:
1,FreeMarker
2,Groovy
3,Thymeleaf
4,Velocity
5,JSP
我原来一直就是用的JSP进行WEB开发的所以我选择使用JSP作为模板引擎。
在创建完项目之后,先将使用JSP作为模板引擎的Maven依赖导入进来
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
然后在application.properties添加如下内容:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
application.hello=Hello mkdlp
然后在src/main/webapp文件夹下创建WEB-NIF/jsp,将jsp页面都放在里面。
然后就要编写Controller了
PageController.java
package com.springboot.study.controller;
import java.util.Map;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class PageController {
@Value("${application.hello}")
private String name;
@RequestMapping(value={"/","/index"})
public String index(Map<String,Object> model){
model.put("name",this.name);
return "index";
}
@RequestMapping("/page1")
public ModelAndView page1(){
// 页面位置 /WEB-INF/jsp/page/page.jsp
ModelAndView mav = new ModelAndView("page/page1");
mav.addObject("content", this.name);
return mav;
}
@RequestMapping("/page2")
public String page2(Model model){
// 页面位置 /WEB-INF/jsp/page/page.jsp
model.addAttribute("content", this.name + "(no.2)");
return "page/page1";
}
}
完成后的目录结构为:
然后运行起来就行了,这样就能够使用JSP进行开发了