【Spring Boot 二】Controller

  • 内容
  • 评论
  • 相关

最近工作太忙了,写了一篇【spring Boot】 Hello World 开山篇就开始忙下一个项目,大大小小的事情,今天抽时间把spring boot 更新一下。

 

接上篇文章,HelloWorld程序中我们已经创建了一个HellController,里面包含了响应JSON的方法,本文针对Controller再做一下讲解。

 

回顾上篇文章,我们在Controller中使用 @RestController 注解,该注解是spring 4.0引入的。查看源码可知其包含了 @Controller 和 @ResponseBody 注解。我们可以理解为 @Controller的增强版。专门为响应内容式的 Controller 而设计的,可以直接响应对象为JSON。 而 @Controller 用来响应页面,spring-boot 支持多种模版引擎包括:

 

  1. FreeMarker 
  2. Groovy 
  3. Thymeleaf (Spring 官网使用这个) 
  4. Velocity 
  5. JSP (貌似Spring Boot官方不推荐,STS创建的项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的webapp目录) 

 

不过本文还是选择大家都熟悉的JSP来举例,因为使用JSP与默认支持的模版需要特殊处理,所以拿来举例更好。

 

关于Controller 方法可以接收参数使用@RequestBody、@RequestParam、@ModelAttribute、JSONObject、HttpEntity 等方式,皆与Spring的使用一样,这里不做赘述。

 

下面我们来说一下如何使用 @Controller 实现响应JSP页面(与SpringMVC也是一样使用)。

 

创建PageController.java

 

pom.xml添加依赖:

 

上面说了spring-boot 不推荐JSP,想使用JSP需要配置application.properties。

在src/main/resources/下新建application.properties内容为:

(注意,如果spring boot版本太低的话,是访问不到内容的,或者说访问的结果是jsp的源码)

 

(如果版本太低的话,想看到jsp页面的话,把上面的spring.mvc.view.prefix=/WEB-INF/jsp/ 改成 spring.view.prefix=/WEB-INF/jsp/ 去掉了[.mvc],路径的话自定义就行,后缀类似...建议升级版本)

 

在 src/main 下面创建 webapp/WEB-INF/jsp 目录用来存放我们的jsp页面。

 

index.jsp

 

page1.jsp

然后启动spring-boot服务。

访问页面查看结果:

 

访问:http://localhost:8080/page

结果:

 

访问:http://localhost:8080/page/page1

结果: Hello Xiao 27wy.cn

 

访问:http://localhost:8080/page/page2

结果:Hello Xiao 27wy.cn(第二种)

 

最后附上工程结构:

 

 

 

只有舍,才有得。

喜欢 3

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Title - Artist
0:00