Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Spring Boot - Java] thymeleaf

    Buonasera a tutti, stavo rivedendo SpringBoot dopo tempo.
    Ho aggiunto la dipendenza di thymeleaf e quella del web.
    Con il
    @ResponseBody
    L'app partiva regolarmente, poi in seguito all'aggiunta di thymeleaf,


    Il sistema mi dice che non trova il target: "templates/index.html"
    La pagina da errore:

    "Whitelabel Error Page
    This application has no explicit mapping for /error, so you are seeing this as a fallback.

    Sun Jan 08 17:43:10 CET 2023

    There was an unexpected error (type=Internal Server Error, status=500)."


    E Maven da invece questo errore:

    org.thymeleaf.TemplateEngine : [THYMELEAF][http-nio-8080-exec-1] Exception processing template "index": Error resolving template [index], template might not exist or might not be accessible by any of the configured Template Resolvers


    ecco il Pom.xml:

    codice:
      <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
         <modelVersion>4.0.0</modelVersion>
         <parent>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-parent</artifactId>
             <version>3.0.2-SNAPSHOT</version>
             <relativePath/> <!-- lookup parent from repository -->
         </parent>
         <groupId>com.myphotos.demo</groupId>
         <artifactId>MyPhotos</artifactId>
         <version>0.0.1-SNAPSHOT</version>
         <name>MyPhotos</name>
         <description>Demo project for Spring Boot</description>
         <properties>
             <java.version>17</java.version>
         </properties>
         <dependencies>
             <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-starter</artifactId>
             </dependency>
              <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-starter-test</artifactId>
                 <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-starter-web</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-starter-thymeleaf</artifactId>
             </dependency>
         </dependencies>
          <build>
             <plugins>
                 <plugin>
                     <groupId>org.springframework.boot</groupId>
                     <artifactId>spring-boot-maven-plugin</artifactId>
                 </plugin>
             </plugins>
         </build>
         <repositories>
             <repository>
                 <id>spring-milestones</id>
                 <name>Spring Milestones</name>
                 <url>https://repo.spring.io/milestone</url>
                 <snapshots>
                     <enabled>false</enabled>
                 </snapshots>
             </repository>
             <repository>
                 <id>spring-snapshots</id>
                 <name>Spring Snapshots</name>
                 <url>https://repo.spring.io/snapshot</url>
                 <releases>
                     <enabled>false</enabled>
                 </releases>
             </repository>
         </repositories>
         <pluginRepositories>
             <pluginRepository>
                 <id>spring-milestones</id>
                 <name>Spring Milestones</name>
                 <url>https://repo.spring.io/milestone</url>
                 <snapshots>
                     <enabled>false</enabled>
                 </snapshots>
             </pluginRepository>
             <pluginRepository>
                 <id>spring-snapshots</id>
                 <name>Spring Snapshots</name>
                 <url>https://repo.spring.io/snapshot</url>
                 <releases>
                     <enabled>false</enabled>
                 </releases>
             </pluginRepository>
         </pluginRepositories>
      </project>
      
    Ultima modifica di jabjoint; 08-01-2023 a 18:55
    jabjoint

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,280
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Buonasera a tutti, stavo rivedendo SpringBoot dopo tempo.
    Ho aggiunto la dipendenza di thymeleaf e quella del web.
    Con il
    @ResponseBody
    L'app partiva regolarmente, poi in seguito all'aggiunta di thymeleaf,


    Il sistema mi dice che non trova il target: "templates/index.html"
    Con i template-engine non si deve usare @ResponseBody in un metodo di controller. Il @ResponseBody si usa quando si deve fare il binding di un oggetto verso XML/JSON sfruttando JAXB, Jackson o altro.

    Con i template-engine si devono impostare i dati in un "model" e poi indicare quale è il nome "logico" della view. Ci sono vari modi per farlo, alcuni più vecchi, altri più recenti. Quello che uso di solito io è ricevere nel metodo un org.springframework.ui.Model, impostarlo con dei dati e poi restituire il nome della vista.

    Con Thymeleaf il prefisso "classpath:/templates/" e il suffisso ".html" sono già definiti per default (a meno di volerli cambiare esplicitamente nella configuration). Quindi il nome "logico" della view viene messo in mezzo tra prefisso e suffisso.

    Se la pagina è nelle risorse in src/main/resources/templates/index.html allora il nome logico è solo "index" e basta (senza path e senza estensione).

    Guarda il controller nel mio progetto demo spring-boot3-thymeleaf-basic-demo


    P.S. non usare le versioni SNAPSHOT di Spring. Potrebbero darti problemi. Ed eviti anche di dover usare i repo specifici di Spring (le milestone/snapshot infatti NON sono sul Maven Central).
    Ultima modifica di andbin; 08-01-2023 a 21:45
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Buongiorno @andbin, grazie per la risposta.

    Sto seguendo questo corso:
    https://www.youtube.com/watch?v=2DPDiCOJyos

    I cui sorgenti li ho trovati su github(link seguente), forse erano le versioni di snapshot che davano problemi, non so...

    https://github.com/LessTheoryAcademy...-boot-in-2-ore

    Tramite questi file si carica.

    Ho provato tuttavia a lanciare la tua APP ma senza esito positivo.
    jabjoint

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,280
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Lascia perdere .....

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Quel progetto usa Spring Boot 2.4.0
    Tu prima parlavi di Spring Boot 3.0.2-SNAPSHOT e il mio demo linkato idem è per 3.x (ma ho anche l'altro demo su Thymeleaf per Boot 2.x ... cambia poco).

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Ho provato tuttavia a lanciare la tua APP ma senza esito positivo.
    Che vuol dire? Ci sono tutte le informazioni per il build nel readme principale del mio demo. Anche, banalmente, tramite Maven: mvn spring-boot:run

    Ma per Boot 3.x serve Java 17.
    Ultima modifica di andbin; 09-01-2023 a 10:35
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Lascia perdere .....


    Quel progetto usa Spring Boot 2.4.0
    Tu prima parlavi di Spring Boot 3.0.2-SNAPSHOT e il mio demo linkato idem è per 3.x (ma ho anche l'altro demo su Thymeleaf per Boot 2.x ... cambia poco).


    Che vuol dire? Ci sono tutte le informazioni per il build nel readme principale del mio demo. Anche, banalmente, tramite Maven: mvn spring-boot:run

    Ma per Boot 3.x serve Java 17.
    Ciao @andbin, per forza che non partiva...non avevo lanciato Apache.

    Funziona alla grande, ti ringrazio!
    jabjoint

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,280
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    per forza che non partiva...non avevo lanciato Apache.
    Guarda che quel progetto MyPhotos, così come i miei demo partono con il server embedded di Spring Boot (che per default è un Tomcat). Non c'è da lanciare un bel niente di server esterno!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Guarda che quel progetto MyPhotos, così come i miei demo partono con il server embedded di Spring Boot (che per default è un Tomcat). Non c'è da lanciare un bel niente di server esterno!!!
    In effetti è come dici, non ho idea quindi del perché dava errore, forse lanciavo la richiesta web prima che avesse concluso l'avvio dell'APP.
    jabjoint

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.