一.项目实例

1.项目结构
2.项目代码
1).ActionController.Java:
package com.example.controller;
import java.util.Date;
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
@RequestMapping("/action")
public class ActionController {
// 从 application.properties 中读取配置,如取不到application.properties定义的值,则取默认值为Hello Shanhy
@Value("${application.hello:Hello Shanhy}")
private String hello;
/**
* 默认页<br/>
* @RequestMapping("/") 和 @RequestMapping 是有区别的
* 如果不写参数,则为全局默认页。
* 如果加了参数“/”,则只认为是根页面。
*/
@RequestMapping(value = {"/","/index"})
public String index(Map<String, Object> model){
// 直接返回字符串,框架默认会去 spring.view.prefix 目录下的 (index拼接spring.view.suffix)页面
// 本例为 /WEB-INF/jsp/index.jsp
model.put("time", new Date());
model.put("message", this.hello);
return "index";
}
/**
* 响应到JSP页面page1
*/
@RequestMapping("/page1")
public ModelAndView page1(){
// 页面位置 /WEB-INF/jsp/page/page1.jsp
//page/page1:页面路径地址/页面名称
ModelAndView mav = new ModelAndView("page/page1");
mav.addObject("content", hello);
return mav;
}
/**
* 响应到JSP页面page1(可以直接使用Model封装内容,直接返回页面字符串)
*/
@RequestMapping("/page2")
public String page2(Model model){
// 页面位置 /WEB-INF/jsp/page/page1.jsp
model.addAttribute("content", hello + "(第二种)");
return "page/page1";
}
}
2).application.properties:
spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp application.hello=Hello TOM
3).index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring Boot Sample</title>
</head>
<body>
Time: ${time}
<br>
Message: ${message}
</body>
</html>
4).page1.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring Boot Sample</title>
</head>
<body>
<h1>${content }</h1>: ${message}
</body>
</html>
5).pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>Spring-boot-simple</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- <packaging>jar</packaging> -->
<packaging>war</packaging>
<name>Spring-boot-simple</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.运行启动项目
访问web地址:http://localhost:8080/action/ ,如下所示:
二.代码解析说明
1.关于在Spring4.x中,@RestController和@Controller的区别
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。所以,以后定义controller的时候,可以直接使用@Controller,如果需要返回json可以直接在方法中添加@ResponseBody即可。
a).如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver则不起作用,返回的内容就是Return 里的内容(String/JSON)。
例如:本来应该到success.jsp页面的,则其显示success.
public String test(HttpServletRequest request, HttpServletResponse response){
return "success";
}
b).如果使用@RestController注解Controller,需要返回到指定页面,则需要配置视图解析器InternalResourceViewResolver,可以利用ModelAndView返回试图。
@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
return newModelAndView("success");
}
c).如果使用@Controller注解Controller,如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
@ResponseBody
@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
return "success";
}
2.spring-boot 支持多种模版引擎包括:
a,FreeMarker
b,Groovy
c,Thymeleaf (Spring 官网使用这个)
d,Velocity
e,JSP (貌似Spring Boot官方不推荐,STS创建的项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的webapp目录)
以上所述是小编给大家介绍的Spring Boot的Controller控制层和页面,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# spring
# boot
# 页面
# 控制层
# SpringBoot与SpringMVC中参数传递的原理解析
# Spring Boot整合mybatis使用注解实现动态Sql、参数传递等常用操作(实现方法)
# springboot控制层图片验证码生成
# Springboot 使用 JSR 303 对 Controller 控制层校验及 Service
# Spring Boot 控制层之参数传递方法详解
# 可以直接
# 小编
# 则需
# 有个
# 是有
# 让我们
# 在此
# 默认页
# 会在
# 要在
# 给大家
# 自定义
# 所示
# 会去
# 可以利用
# 则为
# 所述
# 第二种
# 使用这个
# 给我留言
相关文章:
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
行程制作网站有哪些,第三方机票电子行程单怎么开?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
css网站制作参考文献有哪些,易聊怎么注册?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Thinkphp 中 distinct 的用法解析
建站之星价格显示格式升级,你的预算足够吗?
宝塔Windows建站如何避免显示默认IIS页面?
如何做网站制作流程,*游戏网站怎么搭建?
如何用低价快速搭建高质量网站?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
建站之星代理如何优化在线客服效率?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
建站之星代理商如何保障技术支持与售后服务?
网站按钮制作软件,如何实现网页中按钮的自动点击?
TestNG的testng.xml配置文件怎么写
linux top下的 minerd 木马清除方法
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
制作网页的网站有哪些,电脑上怎么做网页?
详解jQuery停止动画——stop()方法的使用
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
如何通过商城自助建站源码实现零基础高效建站?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
教学论文网站制作软件有哪些,写论文用什么软件
?
如何在七牛云存储上搭建网站并设置自定义域名?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何快速搭建个人网站并优化SEO?
如何选择高效可靠的多用户建站源码资源?
存储型VPS适合搭建中小型网站吗?
如何通过山东自助建站平台快速注册域名?
如何用腾讯建站主机快速创建免费网站?
网站制作公司排行榜,抖音怎样做个人官方网站
建站之星CMS五站合一模板配置与SEO优化指南
网站制作新手教程,新手建设一个网站需要注意些什么?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
如何用wdcp快速搭建高效网站?
如何通过虚拟主机空间快速建站?
如何在橙子建站中快速调整背景颜色?
Swift开发中switch语句值绑定模式
如何快速完成中国万网建站详细流程?
如何用狗爹虚拟主机快速搭建网站?
定制建站方案优化指南:企业官网开发与建站费用解析
实现虚拟支付需哪些建站技术支撑?
如何快速重置建站主机并恢复默认配置?
C#如何在一个XML文件中查找并替换文本内容
*请认真填写需求信息,我们会在24小时内与您取得联系。