Spring MVC系列之Hello World(SpringBoot)(六)

前言

我们将SpringBoot可以看做是集大成者,说的通俗一点就是简化了配置,接下来我们看看在SpringBoot中如何启用并使用Spring MVC,Spring MVC和.NET或者.NET Core中MVC思想一样,只不过名词不一样罢了,好了,我们来看看在SpringBoot中如何使用Spring MVC。

Spring MVC之Hello World

在我们默认创建的SpringBoot项目中,我们在Maven管理包的pom.xml里添加如下包对JSP进行编译

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>

这里需要额外说明下,包spring-boot-starter-web虽然包含spring-boot-starter-tomcat,同时spring-boot-starter-tomcat包含了tomcat-embed-core包,但是,包tomcat-embed-core并未包含tomcat-embed-jasper,实际上,是包括tomcat-embed-core的依赖项的tomcat-embed-jasper,通过上述我们可以看到,包tomcat-embed-jasper被标记为已提供(provided),因此表明我们希望JDK或容器在运行时提供依赖项,该作用域仅在编译和测试类路径上可用,并且不可传递。总之,spring-boot-starter-web包含tomcat嵌入式依赖关系,但不包含jasper嵌入式依赖关系,因此我们需要显式声明来编译JSP。接下来我们根据Java Web的约定创建文件目录并在application.properties配置文件中配置搜索视图即JSP的位置。

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

接下来我们创建HelloWorld的控制器,如下:

package com.demo.springboot.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloWorldController {

    @RequestMapping(value = "/greeting", method = RequestMethod.GET)
    public String helloWorld(@RequestParam String name, ModelMap model) {
        model.put("greeting", "Hello:" + name + " from Spring 4.3x MVC");
        return "welcome";
    }
}

通过@Controller注解将该类标记为spring bean,它可以根据在类上指定的映射或各个控制器方法来处理不同的HTTP请求,而@RequestMapping注解用于将Web请求映射到特定的处理程序类和/或处理程序方法,注解@RequestMapping具有几个属性[value,method,params,..],可用于将映射范围缩小到更具体的选择,方法附加了带有value属性的映射声明,将满足/greeting格式的请求,属性方法用于指定此方法可以服务的HTTP请求的类型,如果映射不包含“方法”属性,则该映射的控制器方法将在该映射的URL上处理所有类型的请求。注解@RequestParam用于接收请求参数且该参数是来自查询字符串,ModelMap是一个Map实现,就是将值进行绑定从而视图能够进行获取,查看helloWorld方法的返回值,这些值将带有后缀,并以在视图解析器中定义的后缀和前缀作为前缀,以形成实际的视图文件名。最后我们创建welcome.jsp的视图文件,如下:

<%@ page contentType="text/html;" pageEncoding="utf-8" %>
<html>

<head>
    <title>Hello World</title>
</head>

<body>
 ${greeting}!
</body>

</html>

注意在该视图页上要声明页面编码,否则对于后台的中文在视图中将显示乱码,如下图中的问号:

总结

本节我们开始了Java Web的学习,并以最终视图输出Hello World而结束,小菜每天积累一点,感谢您的阅读,我们下节见。

原文地址:https://www.cnblogs.com/CreateMyself/p/12158879.html

时间: 2024-10-31 07:51:25

Spring MVC系列之Hello World(SpringBoot)(六)的相关文章

Spring MVC系列之模型绑定(SpringBoot)(七)

前言 上一节我们在SpringBoot中启用了Spring MVC最终输出了HelloWorld,本节我们来讲讲Spring MVC中的模型绑定,这个名称来源于.NET或.NET Core,不知是否恰当,我们暂且这样理解吧. @RequestParam VS  @PathVariable 一看注解名称应该非常好理解,注解@RequestParam主要用来获取查询字符串参数,而注解@PathVaruable用于获取路由参数,下面我们来看如下一个例子: @ResponseBody @RequestM

Spring MVC系列:(1)SpringMVC快速入门

回顾一下struts2,struts2框架有如下特点: struts.xml配置文件,必须以struts.xml命名,且放在src目录下[配置] 每次请求action时,都创建action实例[单例/多例] action类一成不变的直接或间接继续ActionSupport类[类层面] action类中的业务控制方法总是相类似的签名且无参[方法层面] action类中,接收参数要用成员变量和对应的set方法或set/get方法[成员变量层面] 1.什么是springmvc,它与spring有什么关

Spring MVC系列:(7)SpringMVC快速入门(注解版本)

1.引入jar包 spring-core commons-logging-1.2.jar spring-beans-3.2.5.RELEASE.jar spring-context-3.2.5.RELEASE.jar spring-core-3.2.5.RELEASE.jar spring-expression-3.2.5.RELEASE.jar spring-web spring-web-3.2.5.RELEASE.jar spring-webmvc spring-webmvc-3.2.5.R

Spring MVC系列:(2)视图解析器、URL映射器、适配器

1.默认的URL映射器.适配器和视图解析器 SpringMVC提供了默认的URL映射器.适配器和视图解析器. 在上一文中,springmvc-helloworld.xml内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:mvc="http://

Spring MVC系列:(6)添加用户的小案例

1.添加数据库表 使用sqlplus打开数据库 sqlplus scott/tiger 创建emps数据表 create table emps( id varchar(32) not null, username varchar(20) not null, salary number(6,2), hiredate date ); 2.添加jar包 项目需要的jar包有spring-core.spring-web.spring-webmvc.oracle数据库驱动.c3p0数据库连接池.dbuti

Spring MVC系列:(0)struts2

1.如何使用Struts2? 步骤: (1)引入JAR包 (2)进行配置:web.xml和struts.xml配置 (3)写代码和配置: 自定义HelloWorldAction类(继承自ActionSupport) 在struts-web.xml中对HelloWorldAction进行注册 (1)引入JAR包 参考:http://lsieun.blog.51cto.com/9210464/1791218 2.1.引入jar包 (2)进行配置:web.xml和struts.xml配置 web.xm

Spring MVC系列:(11)返回JSON

1.引入jar包 jackson-core-asl-1.9.11.jar jackson-mapper-asl-1.9.11.jar 2.配置springmvc.xml     <!-- 基于注解的适配器 -->     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">         <property name=&qu

Spring MVC系列-(2) Bean的装配

2. Bean的装配 Spring容器负责创建应用程序中的bean,并通过DI来协调对象之间的关系.Spring提供了三种主要的装配机制: XML显式配置: Java配置类进行显式配置: 隐式的bean发现机制和自动装配. 推荐使用Java配置类结合隐式的自动bean扫描机制. 2.1 通过XML装配Bean XML配置是Spring刚出现时的主要配置方式.这种方式需要手动编写XML,并在其中配置好Bean的定义. 创建XML并定义Bean 下面是Person类的定义, public class

27.Spring-Boot中拦截器中静态资源的处理(踩过坑)以及Spring mvc configuring拓展介绍

一.springboot中对静态资源的处理 默认情况下,springboot提供存放放置静态资源的文件夹: /static /public /resources /META-INF/resources 对于maven项目即就是存在src/main/resources 文件夹下. ? 如图:static文件夹就是springboot中默认的文件夹 在页面中这样写路径<link href="themes/bootstrap.min.css" rel="stylesheet&