首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用IDEA创建SpringMvc并整合Thymeleaf(Java配置版)

使用IDEA创建SpringMvc并整合Thymeleaf(Java配置版)

作者头像
凡人飞
发布于 2020-09-20 12:25:56
发布于 2020-09-20 12:25:56
1.1K00
代码可运行
举报
文章被收录于专栏:指缝阳光指缝阳光
运行总次数:0
代码可运行

一、新建Maven项目

  使用idea:File–>New–>Project–>Maven,然后勾选"Create from archetype",继续选中"maven-archetype-webapp"。最后填好GroupId和ArtifactId.

  • groupId :the unique identifier of the organization or group that created the project. <======>GroupID 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
  • artifactId :unique base name of the primary artifact being generated by this project <======>ArtifactID是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

二、导入相关maven的依赖包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <spring.version>4.3.18.RELEASE</spring.version>
    <thymeleaf.version>2.1.4.RELEASE</thymeleaf.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!--J2EE-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>

    <!--SpringMvc-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <!--Thymeleaf-->
    <dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf-spring4</artifactId>
      <version>${thymeleaf.version}</version>
    </dependency>
    
    <dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf</artifactId>
      <version>${thymeleaf.version}</version>
    </dependency>

  </dependencies>

三、创建目录结构

  1. 右击项目名称---->Add Framework Support…---->选择SpringMvc(如果没有这个选项,需要把Project Structure—>Modules—>Spring移除掉)
  2. 在main文件夹下添加java目录,然后右击Make Directory as—>Sources Root
  3. 在src目录下新建test目录,然后右击Make Directory as—>Test Sources Root

四、编写配置文件

  1. SpittrWebAppInitializer
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 配置DispatcherServlet,相当于Web.xml的作用
 *
 * getServletConfigClasses()方法返回的带有@Configuration注解的类将会用来定义DispatcherServlet应用上下文中的Bean
 * getRootConfigClasses()方法返回的带有@Configuration注解的类将会用来配置ContextLoaderListener创建的应用上下文中的Bean
 *
 *
 * @Author: xjf
 * @Date: 2019/6/28 17:37
 */
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{RootConfig.class};
    }

    /**
     * 指定配置类
     * @return
     */
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{WebConfig.class};
    }

    /**
     * 将DispatcherServlet映射到"/"。会将一个或多个路径映射到DispatcherServlet上
     * @return
     */
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}
  1. RootConfig
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Configuration
@ComponentScan(basePackages = "com.spittr",
        excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,value = EnableWebMvc.class)})
public class RootConfig {
}
  1. WebConfig
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * WebConfig配置类(自定义的配置)
 *
 * @Author: xjf
 * @Date: 2019/6/30 9:41
 */
@Configuration
@EnableWebMvc
@ComponentScan("com.spittr.config")
public class WebConfig extends WebMvcConfigurerAdapter {

    /**
     * Thymeleaf视图解析器
     * @param templateEngine
     * @return
     */
    @Bean
    public ViewResolver viewResolver(SpringTemplateEngine templateEngine){
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(templateEngine);

        return viewResolver;
    }

    /**
     * 模板引擎
     * @param templateResolver
     * @return
     */
    @Bean
    public SpringTemplateEngine templateEngine(TemplateResolver templateResolver){
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver);

        return templateEngine;
    }

    /**
     * 模板解析器
     * @return
     */
    @Bean
    public TemplateResolver templateResolver(){
        TemplateResolver templateResolver = new ServletContextTemplateResolver();
        templateResolver.setPrefix("/WEB-INF/templates/");
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode("HTML5");

        return templateResolver;
    }
}

五、编写一个控制类HelloController

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Controller
public class HelloController {

    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String hello(){
        System.out.println("hello");
        return "hello";
    }
}

六、编写一个hello.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
            xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8" />
    <title>Spitter</title>
</head>
<body>

<h1>Welcome to Spittr</h1>

<a th:href="@{/spittles}">Spittles</a>

</body>
</html>

七、最后配置好tomcat就可以运行起来了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringMvc 之MockMvc帮我们解决了什么问题
对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如启动速度慢,测试验证不方便,依赖网络环境等,导致测试无法进行,为了尽可能的对Controller进行快速测试,通过引入MockMVC进行解决。
louiezhou001
2020/04/07
1.4K0
SpringBoot集成Thymeleaf的配置
1.依赖包的引入 <!--&lt;!&ndash; 前端模板 thymeleaf 依赖 &ndash;&gt;--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <exclusions> <!--排除这两个,使用自己引入
Meet相识
2018/09/12
1.8K0
关于整合基于注解的SSM框架小结
先创建一个SpringMVC项目:创建Maven项目,在创建过程中,Packaging必须选择war,创建好项目后,项目会因为缺少web.xml文件报错,则先在pom.xml中添加配置信息:
海拥
2021/08/23
3160
【springmvc thymeleaf】springmvc整合thymeleaf
Thymeleaf提供了一组Spring集成,使您可以将其用作Spring MVC应用程序中JSP的全功能替代品。
lomtom
2021/10/27
2.9K0
【springmvc thymeleaf】springmvc整合thymeleaf
【SSM】Spring + SpringMVC +MyBatis 框架整合
配置目录: 1.spring的编码过滤器; 2.处理请求方式的过滤器; 3.SpringMVC的前端控制器DispatcherServlet; 4.自定义springmvc配置文件的名称与位置; 5.将DispatcherServlet的初始化时间提前到服务器启动前; 6.spring监听器,在服务器启动时加载spring的配置文件; 7.自定义spring配置文件的名称与位置;
.29.
2023/10/17
3900
【SSM】Spring + SpringMVC +MyBatis 框架整合
SpringMVC框架基础知识(02)
在原生的Java EE技术体系中,处理用户请求的是Servlet组件,通常情况下,每个Servlet组件处理1种请求,例如“用户注册”的请求可能由UserRegServlet来处理,“用户登录”的请求可能由UserLoginServlet来处理……在比较复杂的业务系统中,用户提交的请求的种类可能特别多,就会导致Servlet组件的数量也特别多!进而导致代码的管理难度很大,同时,在项目运行时,诸多的Servlet组件也会占用较多的内存空间……
海拥
2021/08/23
2760
Thymeleaf引擎支持Multi Prefix
最近团队的一个项目在重构,希望引入Thymeleaf减少页面端的代码复杂性。在重构过程中,发现html文件需要保存在多个不同的目录中,但Thymeleaf缺省的实现不支持这种方式。
程序猿讲故事
2019/09/27
1.1K0
Thymeleaf引擎支持Multi Prefix
SSM项目整合纪实
  本来是为了探究一些功能性问题,需要一套完整的项目架构,本以为SSM用过那么多了,轻松搭建不在话下,但是过程中还是遇到一些问题,踩到一些未曾料想的坑。博文以搭建极简架构为目的,附带一些关键阐述,既是备忘,也是分享。
用户1615728
2019/05/14
8180
SSM项目整合纪实
springMVC介绍以及快速入门搭建项目
一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。
一个风轻云淡
2022/11/13
5060
SpringMVC+Thymeleaf 处理表单提交
thymleaf处理表单提交的方式和jsp有些类似,也有点不同之处,这里操作一个小Demo,并说明:
Dream城堡
2018/09/10
4.3K0
SpringMVC+Thymeleaf 处理表单提交
Spring MVC之基于java config无xml配置的web应用构建
第二节依然放上项目结构,在这里把xml的结构也截进来了,对于我们的示例demo而言,最大的区别就是没有了webapp,更没有webapp下面的几个xml配置文件
一灰灰blog
2019/05/26
8400
SpringMVC视图ThymeleafView(一)
Thymeleaf 是一种用于 Web 和独立环境的现代服务器端 Java 模板引擎,它能够处理 HTML、XML、JavaScript、CSS 甚至纯文本。在 SpringMVC 中,我们可以使用 Thymeleaf 模板引擎来创建动态 Web 页面。
堕落飞鸟
2023/05/13
4180
不用web.xml,而使用java类配置SpringMVC
DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servlet 3规范和Spring 3.1的功能增强, 可以采用一种全新的,更简洁的方式配置Spring MVC了. 下面按这种方式一个Hello World的MVC配置.
Dream城堡
2018/09/10
5220
不用web.xml,而使用java类配置SpringMVC
注解配置SpringMVC
在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找到的话就用它来配置Servlet容器。 Spring提供了这个接口的实现,名为SpringServletContainerInitializer,这个类反过来又会查找实现WebApplicationInitializer的类并将配置的任务交给它们来完成。Spring3.2引入了一个便利的WebApplicationInitializer基础实现,名为AbstractAnnotationConfigDispatcherServletInitializer,当我们的类扩展了AbstractAnnotationConfigDispatcherServletInitializer并将其部署到Servlet3.0容器的时候,容器会自动发现它,并用它来配置Servlet上下文。
用户9615083
2022/12/25
4630
注解配置SpringMVC
第6章—渲染web视图—使用Thymeleaf
长期以来,jsp在视图领域有非常重要的地位,随着时间的变迁,出现了一位新的挑战者:Thymeleaf,Thymeleaf是原生的,不依赖于标签库.它能够在接受原始HTML的地方进行编辑和渲染.因为它没有与Servelet规范耦合,因此Thymeleaf模板能进入jsp所无法涉足的领域.现在我们来看下如何使用Thymeleaf!
Dream城堡
2018/09/10
5120
第6章—渲染web视图—使用Thymeleaf
SpringBoot 之Thymeleaf模板.
    Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷:
JMCui
2018/10/12
1.2K0
SpringBoot 之Thymeleaf模板.
SSM整合
Spring提供了监听器ContextLoaderListener,实现ServletContextListener接口,可监听
捞月亮的小北
2023/12/01
2210
【SpringMVC】看完这篇简单理解并入门SpringMVC:通过入门案例举例子的方式快速理解
注:三层架构分为表述层(或表示层)、业务逻辑层、数据访问层,表述层表示前台页面和后台servlet
小尘要自信
2023/10/10
9800
【SpringMVC】看完这篇简单理解并入门SpringMVC:通过入门案例举例子的方式快速理解
SSM整合完整流程
Spring 和 SpringMVC 本身就是同源的,作为 Spring 家族的一个框架,整合不整合都行,我们所说的不整合是指 Spring 和 SpringMVC 创建同一个 IOC 容器,整合是指 Spring 和 SpringMVC 各自创建自己的 IOC 容器,管理各自的组件。(建议整合)
程序员Leo
2023/08/07
4430
SSM整合完整流程
Spring MVC之基于java config无xml配置的web应用构建
前一篇博文讲了SpringMVC+web.xml的方式创建web应用,用过SpringBoot的童鞋都知道,早就没有xml什么事情了,其实Spring 3+, Servlet 3+的版本,就已经支持java config,不用再写xml;本篇将介绍下,如何利用java config取代xml配置
一灰灰blog
2019/03/17
1.2K0
Spring MVC之基于java config无xml配置的web应用构建
相关推荐
SpringMvc 之MockMvc帮我们解决了什么问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档