一.项目实例

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 控制层之参数传递方法详解
# 可以直接
# 小编
# 则需
# 有个
# 是有
# 让我们
# 在此
# 默认页
# 会在
# 要在
# 给大家
# 自定义
# 所示
# 会去
# 可以利用
# 则为
# 所述
# 第二种
# 使用这个
# 给我留言
相关文章:
建站主机服务器选购指南:轻量应用与VPS配置解析
如何快速使用云服务器搭建个人网站?
高端建站三要素:定制模板、企业官网与响应式设计优化
如何确保西部建站助手FTP传输的安全性?
如何快速搭建高效服务器建站系统?
建站VPS选购需注意哪些关键参数?
独立制作一个网站多少钱,建立网站需要花多少钱?
建站主机选购指南:核心配置优化与品牌推荐方案
太平洋网站制作公司,网络用语太平洋是什么意思?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何用西部建站助手快速创建专业网站?
如何快速登录WAP自助建站平台?
黑客如何利用漏洞与弱口令入侵网站服务器?
建站之星好吗?新手能否轻松上手建站?
网页设计网站制作软件,microsoft office哪个可以创建网页?
实现虚拟支付需哪些建站技术支撑?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
建站主机核心功能解析:服务器选择与网站搭建流程指南
如何在阿里云高效完成企业建站全流程?
常州自助建站工具推荐:低成本搭建与模板选择技巧
c# 服务器GC和工作站GC的区别和设置
如何获取免费开源的自助建站系统源码?
如何快速辨别茅台真假?关键步骤解析
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
建站主机SSH密钥生成步骤及常见问题解答?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
小型网站建站如何选择虚拟主机?
如何快速建站并高效导出源代码?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
Python lxml的etree和ElementTree有什么区别
制作宣传网站的软件,小红书可以宣传网站吗?
在线制作视频网站免费,都有哪些好的动漫网站?
历史网站制作软件,华为如何找回被删除的网站?
高端网站建设与定制开发一站式解决方案 中企动力
想学网站制作怎么学,建立一个网站要花费多少?
盐城做公司网站,江苏电子版退休证办理流程?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
如何在建站之星网店版论坛获取技术支持?
如何用腾讯建站主机快速创建免费网站?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
网站制作说明怎么写,简述网页设计的流程并说明原因?
建站之星安装后界面空白如何解决?
公司网站的制作公司,企业网站制作基本流程有哪些?
中山网站推广排名,中山信息港登录入口?
如何在阿里云香港服务器快速搭建网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何选择高效响应式自助建站源码系统?
做企业网站制作流程,企业网站制作基本流程有哪些?
如何通过FTP空间快速搭建安全高效网站?
教学论文网站制作软件有哪些,写论文用什么软件
?
*请认真填写需求信息,我们会在24小时内与您取得联系。