首页 > 其他分享 >SpringMvc5整合Thymeleaf-纯注解

SpringMvc5整合Thymeleaf-纯注解

时间:2023-02-18 15:55:19浏览次数:38  
标签:return templateResolver class Thymeleaf bookList new 注解 SpringMvc5 public

SpringMvc5整合Thymeleaf-纯注解

一、环境准备

1、整体项目结构

2、pom依赖

<dependencies>
    <!--springmvc相关依赖-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>

    <!--servlet依赖-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

    <!--jackson依赖-->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.14.1</version>
    </dependency>

    <!--thymeleaf模板-->
    <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf</artifactId>
        <version>3.0.11.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring5</artifactId>
        <version>3.0.11.RELEASE</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!--Tomcat插件-->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <path>/</path>
                <port>80</port>
            </configuration>
        </plugin>
    </plugins>
</build>

3、编写实体类Book

public class Book {    
	private Integer id;
    private String type;
    private String name;
    private String description;
    //setter、getter和构造器自行写入
}    

4、编写配置类

SpringMvcConfig 类

@Configuration
@ComponentScan("com.lwm.controller")
@EnableWebMvc
public class SpringMvcConfig {
}

ServletConfig 类

/**
 * 定义servlet容器启动的配置类,在里面加载spring的配置
 */
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    
    //加载spring容器配置
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    //加载springmvc容器配置
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] {SpringMvcConfig.class};
    }

    //设置拦截请求,拦截请求归属springmvc处理
    @Override
    protected String[] getServletMappings() {
        return new String[] {"/"};
    }
}

5、编写Controller

@Controller
@RequestMapping("/books")
public class BookController {
}

此处需要注意,不要使用Rest风格的注解(@RestController),为什么呢?

要知道一点,@RestController = @Controller + @ResponseBody@ResponseBody 的作用是什么?就是设置当前控制器返回值作为响应体。

所以,一旦使用Rest风格的注解,springmvc不会解析该返回值跳转到对应的页面去,页面上显示的一直是return的数据,可以自行测试一番

(PS:

标签:return,templateResolver,class,Thymeleaf,bookList,new,注解,SpringMvc5,public
From: https://www.cnblogs.com/qmcx/p/17132764.html

相关文章

  • lombok的@Builder注解的坑
    1.导致无参构造丢失单独使用@Data注解,是会生成无参数构造方法。单独使用@Builder注解,发现生成了全属性的构造方法。@Data和@Builder一起用:我们发现没有了默认的构造方......
  • 学习APT以及简单应用( 注解实现 findViewById)
    本文的参考资料、原代码都可以在享学课堂中获取/***创建JavaLibraryModule名称为APTModule*1、创建自定义注解MQBindView*2、创建注解处理器MQProcessor*3......
  • Java @Data注解
    1、@Data注解是lombok.jar包下的注解,该注解通常用在实体bean上,不需要写出set和get方法,但是具备实体bean所具备的方法,简化编程提高变成速度。 2、@Data相当于@Getter@Sette......
  • 注解方式
    配置<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta......
  • Kafka的注解KafkaListener,属性:containerFactory
     kafka的2个topic,如果2个 ConsumerConfig配置不一样。@KafkaListener(id="${groupId}",topics={"TOPIC"},containerFactory="DefinekafkaListenerContainerFacto......
  • Thymeleaf常用语法:模板文件中表达式调用Java类的方法
    在模板文件的表达式中,可以使用“${T(全限定类名).方法名(参数)}”这种格式来调用Java类的静态方法。开发环境:IntelliJIDEA2019.2.2SpringBoot版本:2.1.8新建一个名称......
  • SpringMVC12 - 基于注解配置SpringMVC
    注解配置SpringMVC使用配置类和注解代替web.xml和SpringMVC配置文件的功能创建初始化类,代替web.xml在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.Servlet......
  • @Transactional注解的事务传播行为
    Transactional是Spring事务管理提供的注解,在一个方法中加上了这个注解,那么这个方法就将是有事务的,Transactional.propagation:传播行为1.Transactional注解中七种事务传......
  • 使用@PostConstruct 注解解决@Autowire注入对象为空
    在spring中,对象声明周期为构造器->@Autowired->@PostConstruct有初始化用到@Autowired对象的需求,可以在初始化方法加上@PostConstruct注解    ......
  • AOP + 注解 实现通用的接口参数校验
    大家好,我是小悟写移动端接口的时候,为了校验参数,传统的做法是加各种判断,写了很多重复的代码,而且也不美观。为了增加代码复用性,美观的校验参数,采用AOP+注解的方式来实现接口......