IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Boot Java Discussion :

Problème d'affiche avec ThymeLeaf


Sujet :

Spring Boot Java

  1. #1
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut Problème d'affiche avec ThymeLeaf
    Bonjour,

    Je débute avec Spring boot.
    J'ai créer un nouveau projet avec pring STool Suit.
    J'ai pris les briques Spring MVC et web, JPA, MySql et ThymeLeaf

    Et j'ai un problème avec ThymeLeaf
    Je ne connaissait pas, habituellement j'utilise JSP et JSTL.
    Il semble que c'est le choix par défaut avec Spring boot.

    Mes attributs ne s'affiche pas dans ma vue

    Pour l'instant je n'ai pas encore utilisé la partie base de données

    Je travaille avec :
    - Windows 10
    - eclipse-jee-2019-03-R
    - JDK 11
    - Wamp pour avoir MySql

    Je n'ai pas touché au POM mais j'ai une erreur bizarre
    Description	Resource	Path	Location	Type
    Unknown	pom.xml	/xComptaSpringBoot	line 1	Maven Configuration Problem
    J'ai modifié mon fichier 'application.properties ' pour avoir ma connectionMysql, même si je ne l'utilise pas encore, car sinon le conteneur ne se lance pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # DATABASE
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/Xcompta?zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=UTC
    spring.datasource.username=root
    spring.datasource.password=
    # JPA Hibernate
    # jpaspring.jpa.show-sql=true
    spring.jpa.hibernate.ddl-auto=update
    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
    J'ai du ajouté des arguments en fin d'URL jdbc, sinon mysql recherche des infos sur le fuseau

    J'ai ajouté un controller 'MainController.java'dans package controller dans le dossier java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    package controller;
     
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
     
    import fr.xcomptadomain.Journal;
     
    @Controller
    public class MainController {
    	//@Autowired
    	// private JournalRepository journalReposiitory;
    	// private JournalRepository journalRepository;
     
    	@GetMapping("/"	)
    	public String index(Model model) {
     
    		model.addAttribute("msg", "Bonjour");
     
    		return "index";
    	}
     
    ...
    J'ai créé une page index.html que j'ai ajouté dans templates
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <!DOCTYPE html>
    <html xmlns:th="www.thymeleaf.org">
    <!DOCTYPE HTML>
    <!DOCTYPE HTML>
    <html xmlns:th="http://www.thymeleaf.org">
    ***<head
    <meta charset="ISO-8859-1">
    <title>First Thymeleaf Page</title>
    </head>
    <body>
     
    <li>
    <ul><a href="/">index</a></ul>
    <ul><a href="journalList">Journal list</a>
    </ul>
    </li>
     
    <p th:text="${msg}"></p>
     
    </body>
    </html>

    J'appelle la page par 'localhost:8080/' et la rappelle par le lien dans ma vue.
    Mais la variable ne passe jamais la vue est complété par du vide.
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <p th:text="${msg}"></p>

    Je pense que c'est une erreur stupide de débutant, mais j'ai beau chercher je ne trouve pas

    Si vous pouviez m'éclairer.

    Cordialement
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    J'ai modifié mon fichier 'application.properties ' pour avoir ma connectionMysql, même si je ne l'utilise pas encore, car sinon le conteneur ne se lance pas.
    Tu peux désactiver l'utilisation d'un dataSource par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
    https://docs.spring.io/spring-boot/d...ration-classes

    Pour ton problème, essaie de corriger ton header ici:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!DOCTYPE html>
    <html xmlns:th="www.thymeleaf.org">
    <!DOCTYPE HTML>
    <!DOCTYPE HTML>
    <html xmlns:th="http://www.thymeleaf.org">
    ***<head
    A+.

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Merci andry.aime

    Merci pour le code qui permet de suspende le datasourcre
    Est-cce génant d'avoir un datasource pour rien ?
    De toute façon j'ai commencé à utiliser le DAO
    Mais c'est bon à savoir.

    J'ai corrigé les fichiers html dans le dossier "templates", avec l'entête que tu m'a recommandé.
    Mais l'attribut le message 'msg) ne passe toujours pas.
    Dans le code source c'est vide.

    Et le problème semble plus profond il ne trouve que "index.htm", sans injecter la valeur.
    J'ai des erreurs 404 sur mes liens, sauf sur "index" que je peux rappeler depuis elle même.
    Pour rentrer dans l'application j'appelle "localhost:8080

    C'est peut être la façon dont j'appelle le model, qui est la source du problème.
    Qui instancie l'objet "model"
    C'est bien le conteneur, c'est bien lui, ce n'est pas à moi de le faire.
    Je n'ai pas préciser le path du dossier "templates "

    Voici mon controller.
    J'ai peut être oublié d'initialiser un truc.
    Le problème avec Spring boot est quon devient vite paresseux, et que l'on compte sur sa magie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package controller;
     
    import java.util.List;
     
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
     
    import fr.xcomptadomain.Journal;
    import repository.JournalRepository;
     
    @Controller
    public class MainController {
    	@Autowired
    	private JournalRepository journalRepository;
     
    	@GetMapping(value={"/", "/index"})
    	public String index(Model model) {
     
    		model.addAttribute("msg", "Bonjour");
     
    		return "index";
    	}
     
    	@GetMapping("/journalList")
    	public String journalList(Model model) {
    		List<Journal> journaux = (List<Journal>) journalRepository.findAll();
     
    	System.out.println("Nb journaux : " + journaux.size());
     
    		for(Journal journal: journaux) {
    			System.out.println(journal);
    		}
     
    		model.addAttribute("journaux", journaux);
     
    		return "journalList";
    	}
     
    	@GetMapping("/journalDetail")
    	public String journalDetail(Model model) {
    		Journal journal = journalDao.findByCode("AC");
    		// journalRepository.count()
    		//Journal journal = new Journal("ac", "Achats");
     
    		model.addAttribute("journal", journal);
    		return "journalDetail";
    	}
     
    }
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,

    Citation Envoyé par CoderInTheDark Voir le message
    Et le problème semble plus profond il ne trouve que "index.htm"
    L'extension par défaut pour les templates est .html, donc il ne considérera pas index.htm comme un template. As-tu un ClassLoaderTemplateResolver?

    A+.

  5. #5
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Salut, en appellant :
    cela ne va pas te rediriger sur le dossier de SpringBoot.
    tu devrais plutot appeller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    localhost:8080/nom_de_ton_projet

    cela depend comment tu as configurer cela.

    Eric

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Re,



    L'extension par défaut pour les templates est .html, donc il ne considérera pas index.htm comme un template. As-tu un ClassLoaderTemplateResolver?

    A+.


    Non je n'en ai pas.
    Ce n'est pas fait par sprint tool suite ?
    Je dois faire une classe utiliraire avec une anotation @Configuration
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  7. #7
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Est-ce que je peux passer par le fichier "application..properties" ?

    Aves vous des exemples ?

    C'est quoi le meilleur dans mon cas ?

    Je cherche sur google et stack, mais je ne trouve pas d'exemple complet
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  8. #8
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Von après lecture je pensais ajouter ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    @Configuration
    public class CustomConfig implements WebMvcConfigurer {
     
    	@Bean
        public ClassLoaderTemplateResolver yourTemplateResolver() {
    ClassLoaderTemplateResolver configurer = new ClassLoaderTemplateResolver();
    configurer.	setPrefix("/templates/");
    configurer.setSuffix(".html");
            configurer.setTemplateMode(TemplateMode.HTML);
    configurer.setCharacterEncoding("UTF-8");
            configurer.setOrder(0);
     
     
     
     
    return configurer;
     
        }
    }
    Je l'ai placé dans un package configuration
    Mais je suis toujours planté
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Si l'extension de tes templates est .html et que se trouvent dans "src/main/resources/templates", ce sont des paramètres par défaut donc ne nécessite pas un ClassLoaderTemplateResolver personnalisé (Supprime le si tu n'as pas besoin de personnalisation). Attention aussi aux encodages si tu veux personnaliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    configurer.setCharacterEncoding("UTF-8");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta charset="ISO-8859-1">
    Essaie de retourner un ModelAndView et non un String.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @GetMapping(value = "/")
     public ModelAndView index() {
           ModelAndView modelAndView = new ModelAndView();
           modelAndView.setViewName("index");
           modelAndView.addObject("msg", "Bonjour");
           return modelAndView;
    }
    Sinon montre nous la classe de configuration et un imprime écran des hiérarchies des fichiers.

    A+.

  10. #10
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Bonjour,

    Alors si j'ai bien compris.

    J'ai créé un package "configuration".
    J'ai créé la classe ci-dessous.
    en me basant sur cette page
    [quote]
    https://www.javadevjournal.com/sprin...oot-thymeleaf/

    J'ai commenté les lignes inutiles, car j'utilise une configuration par défaut, d'après tes conseils.
    Pour l'instant je ne comprends pas trop les 3 dernières lignes.pr

    KLe rôle de la 1ère n'est pas encore évident pour moi.

    es recherches sur google pour "configuration.setCheckExistence(true);".
    semblent indiqué que la fonction pose problème à d'autres personnes

    La dernière est en erreur.

    On dirait qu'il y a deux lignes imbriqués.
    Ou un truc du genre, ou ce n'est pas du java 8
    On pourrait croire à une construction ternaire au cas o^ça polante

    Mais là n(y a pas d'exception ou une gestion d'erreur à faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @Configuration
    public class MaConfig implements WebMvcConfigurer {
     
    	@Bean
        public ClassLoaderTemplateResolver templateResolver() {
    ClassLoaderTemplateResolver configuration = new ClassLoaderTemplateResolver();
    //configuration.	setPrefix("templates/");
    //configuration.setSuffix(".html");
            configuration.setTemplateMode(TemplateMode.HTML);
    configuration.setCharacterEncoding("UTF-8");
            configuration.setOrder(0);
    configuration.setCheckExistence(true);
     
    configuration.setCheckExistence(true    return configuration;
     
        }
    }
    J'ai modifié le Controller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    @Controller
    public class MainController {
    	@Autowired
    	private JournalRepository journalRepository;
     
    	@GetMapping(value = { "/", "/index" })
    	public ModelAndView index() {
    		//@RequestParam(name = "message", required = false, defaultValue = "Rien à dire") String name,
    			ModelAndView model = new ModelAndView();
    	model.setViewName("index");
     
    		model.addObject("msg", "Bonjour");
     
    		return model;
    	}
     
    	@GetMapping("/journalList")
    	public ModelAndView journalList() {
    		List<Journal> journaux = (List<Journal>) journalRepository.findAll();
     
    		System.out.println("Nb journaux : " + journaux.size());
     
    		for (Journal journal : journaux) {
    			System.out.println(journal);
    		}
     
     
    		ModelAndView model = new ModelAndView(); 
    		model.setViewName("journalList");
    model.addObject("journaux", journaux);
     
    		return model;
    	}
     
    	@GetMapping("/journalDetail")
    	public ModelAndView journalDetail(@RequestParam(name = "code", required = true) String code) {
    Optional<Journal> journal = journalRepository.findById(code);
     
    		// Journal journal = new Journal("ac", "Achats");
     
    ModelAndView model = new ModelAndView();
    model.setViewName("journalDetail");
    		model.addObject("journal", journal);
     
    		return model;
    	}
     
    }
    Je vais régénérer le projet et y mettre mes ressources

    Dans beaucoup de tutos ils ne parlent pas du resolver.
    Et j'ai cru à tort que c'étais automatique ou une ligne à rajouter dans application.properties
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Citation Envoyé par jeffray03 Voir le message
    Salut, en appellant :
    cela ne va pas te rediriger sur le dossier de SpringBoot.
    tu devrais plutot appeller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    localhost:8080/nom_de_ton_projet

    cela depend comment tu as configurer cela.

    Eric
    Par forcément, s'il n'a pas configurer la valeur de server.servlet.context-path , il doit accéder directement à la racine localhost:8080/

    @CoderInTheDark
    peut-on voir la classe qui contient la méthode main, ton fichier applications.properties et un imprime écran de la hiérarchie de ton projet?

    A+.

  12. #12
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Merci à vous deux,

    Désolé pour le retard

    J'ai mis ça sur mon github
    https://github.com/FabriceLuneau/xComptaSpringBoot

    Je récapitules les étapes que j'ai fait.
    J'ai pris le wissard new project -> other ->
    Spring Starter Project via sts initialize service

    Sur le premier écran, j(ai pris :
    - java 8,
    -maven,
    -jar

    Sur le deuxième écran
    J'ai pris les briques
    - mvc
    - jpa / hibernate
    - mysql
    - thymeleaf

    J'ai créé une page index dans template
    J'ai cré un package controller et une classe main controller avec une méthode pour index

    J'ai créé un package configuration
    avec le listener maconfiguration

    J'ai fait ma config dans application.properties

    J'ai exclu le data source dans la classe main

    car ça peut attendre
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  13. #13
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Comme je le disais, corrige les entêtes de ton fichier html. Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!DOCTYPE html>
    <html xmlns:th="www.thymeleaf.org">
    <!DOCTYPE HTML>
    <!DOCTYPE HTML>
    <html xmlns:th="http://www.thymeleaf.org">
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <!DOCTYPE HTML>
    <html xmlns:th="http://www.thymeleaf.org">
    Ensuite la classe MaConfig est inutile, du moins pour le moment, commente l'annotation @Configuration pour l'ignorer dans le contexte de spring.

    A+.

  14. #14
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Merci j'ai fait les corrections

    Citation Envoyé par andry.aime Voir le message
    Bonjour,
    Comme je le disais, corrige les entêtes de ton fichier html. Remplace
    C'est corrigé sur "index.html".
    Mais l'attribut "msg" ne s'affiche toujours pas.

    Comment on choisi la bonne entête ?
    Quand je faisais du JSP, en générale je faisais un copié collé d'un fichier existant dans le projet, ou on me donnais la bonne entête.
    On pouvait aussi "new jsp file"
    Sts ne peux pas me créer un projet en fonction de ma configuration ?

    Citation Envoyé par andry.aime Voir le message
    Bonjour,
    Ensuite la classe MaConfig est inutile, du moins pour le moment, commente l'annotation @Configuration pour l'ignorer dans le contexte de spring.
    C'est fait aussi


    Mais te semble t-elle bien écrite ?

    Pour le global qu'est ce qui peut coincer ?
    J'ai lu les logs dans la console, il n'y arien de choquant que des info

    @+
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  15. #15
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Tu as plusieurs packages dans la racine ("configuration, controller"), tu dois les déclarer dans l'annotation @SpringBootApplication pour qu'il les scanne (Si ce n'est pas encore le cas).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @SpringBootApplication(scanBasePackages={"configuration, controller"}) // et aussi les autres packages que spring doit scanner pour les beans
    Après, il y a une convention pour les nomenclatures des packages: https://docs.oracle.com/javase/tutor...amingpkgs.html

    A+.

  16. #16
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Alleluia ça marche.
    Merci, je commençais de plus à douter d'y arriver un jour.
    Heureusement que tu étais là.

    J'ai ajouté l'annotation "SpringBootApplication[/", et ça marche
    Ce qui est dommage c'est que elle n'est pas répétable.
    Et là elle commence déjà à être bien remplit.

    Je vais m'entraîner à Thymeleaf, je pense que ça va être comme la JSTL, d'après ce que j'en ai vu.
    L''essentiel ça doit être la même chose afficher une variable et utiliser les boucles pour les tableaux.

    Question
    Je vais ajouter le métier ensuite, mais je vais faire un autre projet, que je vais joindre avec Maven.
    N'aurai je qu'à l'ajouter dans l'anotation @SpringBootApplication[ ?
    Le fait que le package soit ailleurs peut-il déranger Spring ?

    Concernant le scan des pLerci encore.

    J'i juste un petit coup de griffe pour les tutos gruyères du web.
    Car parfois ils oublient souvent des étapes.
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  17. #17
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Citation Envoyé par CoderInTheDark Voir le message
    Question
    Je vais ajouter le métier ensuite, mais je vais faire un autre projet, que je vais joindre avec Maven.
    N'aurai je qu'à l'ajouter dans l'anotation @SpringBootApplication[ ?
    Le fait que le package soit ailleurs peut-il déranger Spring ?
    Ça dépend de ce qu'il y a dans le jar, s'il a sa propre configuration, tu peux l'appeler avec l'annotation @Import dans la classe de configuration du projet qui va l'utiliser., tu peux aussi ajouter les packages du jar à scanner.
    Essaie aussi de respecter la convention de nomenclature des packages.

    A+.

  18. #18
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 065
    Points : 2 567
    Points
    2 567
    Par défaut
    Bonsoir,

    C'est bon j'ai commencé à travailler avec les Repositories et mes Bean métier.
    Ils sont dans un projet externe, j'ai juste ajouter une dépendance dans mon pom vers le projet où ils sont.
    Et bien sûr je les ai noté à scaner.

    J'ai fais une page de teste qui récupére et affiche les objets dans un tableau

    Je vais pouvoir clore la discussion.

    Encore merci

    Concernant les convention de nommages
    Oui ça fait un peu tâche.
    Mais là j'ai pushé sur le dépôt.
    Je vais consulter la nouvelle FAQ sur Git, pour trouver une façon de les renommer, je ne dois pas être le seul à pusher un truc pas erreur ;P

    Encore merci
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/09/2016, 12h27
  2. Problème d'affiche sur ecrana avec résolution 1680x1050
    Par sylverspoon dans le forum Applets
    Réponses: 0
    Dernier message: 04/02/2010, 09h16
  3. Réponses: 0
    Dernier message: 28/10/2009, 21h29
  4. Problème d'affiche d'une list avec c:forEach
    Par lili2704 dans le forum Struts 1
    Réponses: 2
    Dernier message: 19/03/2007, 17h49
  5. Problèmes d'affiche du header de mon JTable avec un Model
    Par Baptiste Wicht dans le forum Composants
    Réponses: 16
    Dernier message: 08/02/2006, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo