日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Spring MVC 5 + Thymeleaf 基于Java配置和注解配置

發布時間:2023/12/10 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC 5 + Thymeleaf 基于Java配置和注解配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring MVC 5 + Thymeleaf 注解配置

Spring的配置方式一般為兩種:XML配置和注解配置

Spring從3.0開始以后,推薦使用注解配置,這兩種配置的優缺點說的人很多,我就不說了,自行體會,下面就用注解配置實現一個Spring MVC Web Demo

先看看項目結構:

可以看到沒有任何XML配置文件,全都是Java代碼實現。

  • 使用 Maven 新建一個項目,當然你用IEDA,Eclipse新建一個空的項目一樣的,然后添加依賴,依賴下面直接給出:

    4.0.0
    spring-mvc
    spring-mvc
    1.0-SNAPSHOT
    war

    <name>Spring-mvc Maven Webapp</name><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><failOnMissingWebXml>false</failOnMissingWebXml><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><spring.version>5.0.6.RELEASE</spring.version><thymeleaf.version>3.0.9.RELEASE</thymeleaf.version></properties><dependencies><!--spring相關包--><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><!--j2ee相關包 servlet、jsp、jstl--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring5</artifactId><version>${thymeleaf.version}</version></dependency><!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!--jackson--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.5</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--配置熱啟動--><configuration><fork>true</fork></configuration></plugin><!--servlet容器 tomcat 插件--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version></plugin></plugins></build> </project>
  • 新建 MvcWebConfig 配置類 實現WebMvcConfigurer接口,重寫configureViewResolvers 方法即可,并且使用 @Configuration、@ComponentScan 注解 MvcWebConfig 類,下面我給出主要代碼,然后說明代碼的作用。

    /*** STEP 1 - 創建模版解析器*/@Beanpublic ITemplateResolver templateResolver() {SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();templateResolver.setApplicationContext(applicationContext);templateResolver.setPrefix("/WEB-INF/templates/");templateResolver.setSuffix(".html");templateResolver.setCharacterEncoding("UTF-8");templateResolver.setTemplateMode(TemplateMode.HTML);templateResolver.setCacheable(false);return templateResolver;}/*** STEP 2 - 創建模版引擎* 并為模板引擎注入模板解析器*/@Beanpublic SpringTemplateEngine templateEngine() {SpringTemplateEngine templateEngine = new SpringTemplateEngine();templateEngine.setTemplateResolver(templateResolver());templateEngine.setEnableSpringELCompiler(true);return templateEngine;}/*** STEP 3 - 注冊 Thymeleaf 視圖解析器* 并為解析器注入模板引擎*/@Overridepublic void configureViewResolvers(ViewResolverRegistry registry) {ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();viewResolver.setTemplateEngine(templateEngine());viewResolver.setCharacterEncoding("UTF-8");registry.viewResolver(viewResolver);}
    • templateResolver 方法和XML配置的類似
    • 中文會有亂碼問題,需要設置 "UTF-8",兩個地方必須都要設置,否則會顯示亂碼
  • 新建 MvcWebAppInitializer 類 extends 抽象類 AbstractAnnotationConfigDispatcherServletInitializer,重寫以下幾個方法
    @Override
    protected Class<?>[] getRootConfigClasses() {
    return null;
    }

    @Overrideprotected Class<?>[] getServletConfigClasses() {return new Class[]{MvcWebConfig.class};}@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}@Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();encodingFilter.setEncoding("UTF-8");encodingFilter.setForceRequestEncoding(true);return new Filter[]{encodingFilter};}

    至此,配置已經全部完成。

  • 新建 HomeController ,新建 index 視圖先看看,能不能跑起來
    • index :
      @RequestMapping(value = "/", method = RequestMethod.GET)
      public String index() {
      return "index";
      }
    • 在 \WEB-INF\templates?目錄下新建頁面 index.html,并使用thymeleaf 模板引擎
  • <!DOCTYPE html><html lang="zh-CN" xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Spring Index</title><link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous"></head><body><div class="container" style="margin-top: 40px;"><div class="jumbotron"><h1>Spring Mvc 5 + Thymeleaf</h1><p>出現此頁面,說明配置成功,棄用xml配置,使用注解方式實現</p><p>mvn tomcat7:run</p><p><a class="btn btn-primary btn-lg" th:href="@{/home/user}" role="button">Learn more</a></p></div></div><script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.slim.min.js" crossorigin="anonymous"></script><script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" crossorigin="anonymous"></script></body></html>

    /home/user 頁面如下:

    至此頁面已經完成,現在使用Maven 跑一下,命令:mvn tomcat7:run
    當然你也可以用IDEA 的 Edit Configurations 新建一個Maven,如下圖:


    看一下效果:

    沒有使用任何XML文件,Spring MVC跑起來了,再試試返回json數據

  • 在 HomeController 新建userList 方法,返回List數組
    @ResponseBody
    @RequestMapping(value = "/home/userList", method = RequestMethod.GET)
    public List userList() {
    List userList = new ArrayList<>();
    userList.add(new UserInfo(1001, "龍傲天", 23, "成都省"));
    userList.add(new UserInfo(1002, "曹孟德", 33, "河北市"));
    userList.add(new UserInfo(1003, "Chris", 32, "高新市"));
    userList.add(new UserInfo(1003, "Evans", 17, "綿陽市"));

    return userList;}
    • Spring 返回 json數據 直接使用 @ResponseBody 注解杰克
    • @ResponseBody 依賴 com.fasterxml.jackson
  • 看下返回json數據的效果

  • 沒有使用任何XML文件,實現了一個Web 程序。
    Ps:博客園的這個markdown 編輯器有問題,我用Typora寫好了復制過來,總有些問題,將就著看吧

    轉載于:https://www.cnblogs.com/softmax/p/9157584.html

    總結

    以上是生活随笔為你收集整理的Spring MVC 5 + Thymeleaf 基于Java配置和注解配置的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。