web-dev-qa-db-fra.com

IntelliJ + Spring Web MVC

J'ai un problème d'intégration avec IntelliJ 2016.1.3 et Spring Web MVC . Étapes effectuées:

  1. Fichier -> Nouveau -> Projet ... -> Maven (pas d'archétype)
  2. GroupId = test ArtifactId = app
  3. Nom du projet = App et Terminer.
  4. J'ai ajouté à pom.xml <packaging> war </ packaging>
  5. J'ai ajouté aux dépendances pom.xml 

     & ltdependency & gt 
     & ltgroupId & gtorg.springframework & lt/groupId & gt 
     & ltartifactId & gtspring-webmvc & lt/artifactId & gt 
     & ltversion & gt4.1.6.LELEASE & lt/version & gt 
     & lt/dépendance & gt 
     & ltdependency & gt 
     & ltgroupId & gtjavax.servlet & lt/groupId & gt 
     & ltartifactId & gtjstl & lt/artifactId & gt 
     & ltversion & gt1.2 & lt/version & gt 
     & lt/dépendance & gt 
     & ltdependency & gt 
     & ltgroupId & gtjavax.servlet & lt/groupId & gt 
     & ltartifactId & gtjavax.servlet-api & lt/artifactId & gt 
     & ltversion & gt3.1.0 & lt/version & gt 
     & ltscope & gtprovided & lt/scope & gt 
     & lt/dependency & gt 
    
  6. Ensuite, j'ai ajouté des modules dans le projet (clic droit sur le nom du projet -> Ajouter un support au framework ...). J'ai sélectionné Spring MVC et Télécharger (Configure ... - sélectionné tous les éléments).

  7. J'ai créé la classe de contrôleur HomeController.class

     package test.app; 
    
     importer org.springframework.stereotype.Controller; 
     importer org.springframework.web.bind.annotation.RequestMapping; 
    
     @ Controller 
     Classe publique HomeController {
     @RequestMapping (valeur = "/") 
     public String test () 
     {
     renvoyer "test"; 
     } 
    } 
    
  8. J'ai créé webapp\WEB-INF et y ai mis web.xml

     & ltweb-app version = "3.0" xmlns = "http://Java.Sun.com/xml/ns/javaee" 
     xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" 
     xsi: schemaLocation = "http://Java.Sun.com/xml/ns/javaee
     http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd"&gt
     & ltservlet & gt 
     & ltservlet-name & gtWebServlet & lt/nom_servlet & gt 
     & ltservlet-class & gtorg.springframework.web.servlet.DispatcherServlet & lt/servlet-class & gt 
     & ltinit-param & gt 
     & ltparam-name & gtcontextConfigLocation & lt/param-name & gt 
     & ltparam-value & gt/WEB-INF/dispatcher-servlet.xml & lt/param-value & gt 
     & lt/init-param & gt 
     & lt/servlet & gt 
    
    
    &ltservlet-mapping&gt
        &ltservlet-name&gtWebServlet&lt/servlet-name&gt
        &lturl-pattern&gt/&lt/url-pattern&gt
    &lt/servlet-mapping&gt
    
    & lt/web-app & gt
  9. Dans webapp\WEB-INF je mets dispatcher-servlet.xml

     & lt? xml version = "1.0" encoding = "UTF-8"? & gt 
     & ltbeans xmlns = "http://www.springframework.org/schema/beans" 
     xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" 
     xmlns: context = "http://www.springframework.org/schema/context" 
     xmlns: mvc = "http://www.springframework.org/schema/mvc" 
     xsi: schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/ schéma/contexte http://www.springframework.org/schema/context/spring-context-4.0.xsd
     http://www.springframework.org/schema/mvc http://www.springframework.org/ schéma/mvc/spring-mvc-4.0.xsd "& gt 
    
    .____.
    &ltmvc:annotation-driven /&gt
    &ltcontext:component-scan base-package="test.app" /&gt
    
    &ltbean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt
        &ltproperty name="prefix" value="/WEB-INF/views/" /&gt
        &ltproperty name="suffix" value=".jsp" /&gt
    &lt/bean&gt
    
    & lt/haricots & gt
  10. Enfin, j'ai ajouté le fichier test.jsp dans webapp\WEB-INF\views. En outre, je devais ajouter une dépendance de module (F4 -> modules -> dépendances -> + -> bibliothèque -> à partir de maven -> javax.servlet typé: jstl: 1.2)

  11. La prochaine étape devrait être exécuté application. J'ai dû modifier les configurations (flèche vers le bas à côté de la flèche verte) -> + -> TomcatServer -> Local et j'ai reçu un avertissement Aucun artefact marqué pour le déploiement. Malheureusement, je ne peux pas résoudre ce problème. J'ai le bouton Réparer mais après avoir appuyé sur cet onglet de déploiement, je ne sais pas quoi faire.

Aidez-moi à configurer le déploiement et dites-moi si j’ai bien créé mon application Web printanière dans IntelliJ ou si vous avez un autre meilleur moyen. J'ai besoin d'un didacticiel pas à pas car j'ai visionné certains films sur youtube et j'ai vu des options que je n'ai pas encore trouvées dans mon Intellij ou qui sont cachées et que je ne peux pas les trouver . 

13
kmmm

Si vous avez tout configuré correctement, vous devriez avoir un + -Sign en haut à droite de votre onglet de déploiement . Après avoir appuyé dessus, une info-bulle avec 1-2 options devrait vous être proposée:

  • Artefact...
  • Source externe...

Vous sélectionnerez généralement l'artefact de déploiement de votre projet actuel en choisissant "Artefact ...".

HTH

3
Florian Stendel

A l'étape 11. Lorsque vous recevez l'avertissement, 

  1. Aller à l'onglet Déploiement Appuyez sur le bouton '+'. 
  2. un menu contextuel avec les options "Artifact ..." et "External Source .." s'affiche. 
  3. sélectionnez "Artifact ..." et une boîte de dialogue s'affichera avec les deux options "nom_projet: guerre" et "nom_projet: guerre éclatée" s'affiche.
  4. Sélectionnez l'option 'nom_projet: guerre éclatée', l'avertissement sera résolu.
2
Asif Khokhar

Il existe un didacticiel pas à pas complet sur la création d’un projet Spring Web MVC dans IntelliJ.

  1. Fichier -> Nouveau -> Projet -> Maven (décochez la case "Créer à partir d'un archétype") -> Suivant.
  2. Tapez votre GroupId et ArtifactId. Par exemple, GroupId = 'test', ArtifactId = 'app' et cliquez sur Suivant.
  3. Tapez Nom du projet. Par exemple, nom du projet = 'WebApp' et cliquez sur Terminer.
  4. Cliquez avec le bouton droit de la souris sur le nom de votre projet et choisissez "Ajouter un support au framework ...". Ensuite, sélectionnez "Spring MVC" et "Download" option. Cliquez sur OK.
  5. Dans le fichier pom.xml, ajoutez une nouvelle propriété de dépendance et de packaging, comme dans le code ci-dessous

     & lt? xml version = "1.0" encoding = "UTF-8"? & gt 
     & ltproject 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 http://maven.Apache.org/xsd/maven-4.0.0.xsd"&gt
     & ltmodelVersion & gt4.0.0 & lt/modelVersion & gt 
    
    
    &ltgroupId&gttest&lt/groupId&gt
    &ltartifactId&gtapp&lt/artifactId&gt
    &ltversion&gt1.0-SNAPSHOT&lt/version&gt
    &ltpackaging&gtwar&lt/packaging&gt
    
    &ltdependencies&gt
        &ltdependency&gt
            &ltgroupId&gtorg.springframework&lt/groupId&gt
            &ltartifactId&gtspring-webmvc&lt/artifactId&gt
            &ltversion&gt4.2.5.RELEASE&lt/version&gt
        &lt/dependency&gt
    &lt/dependencies&gt
    
    & lt/project & gt
  6. Dans le coin supérieur droit de la fenêtre IntelliJ, vous verrez le panneau d'information "Les projets Maven doivent être importés". Cliquez sur 'Import changes'.

  7. Dans src/main/Java, créez un nouveau package, par exemple 'test.app' et placez-y le nouveau fichier Java TestController.Java avec votre contrôleur (code ci-dessous).

     package test.app; 
    
     importer org.springframework.stereotype.Controller; 
     importer org.springframework.web.bind.annotation.RequestMapping; .______.
     @ Controller 
     public class TestController {
     @RequestMapping (valeur = "/") 
     public String test () 
     {
     retourne "index"; 
     } 
    } 
    
  8. Dans le code de collage de fichier Web/WEB-INF/dispatcher-servlet.xml ci-dessous

     & lt? xml version = "1.0" encoding = "UTF-8"? & gt 
     & ltbeans xmlns = "http://www.springframework.org/schema/beans" 
     xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" 
     xmlns: context = "http://www.springframework.org/schema/context" 
     xmlns: mvc = "http://www.springframework.org/schema/mvc" 
     xsi: schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/ schéma/contexte http://www.springframework.org/schema/context/spring-context-4.0.xsd
     http://www.springframework.org/schema/mvc http://www.springframework.org/ schéma/mvc/spring-mvc-4.0.xsd "& gt 
    
    .____.
    &ltmvc:annotation-driven /&gt
    &ltcontext:component-scan base-package="test.app" /&gt
    
    &ltbean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt
        &ltproperty name="prefix" value="/WEB-INF/views/" /&gt
        &ltproperty name="suffix" value=".jsp" /&gt
    &lt/bean&gt
    
    & lt/haricots & gt
  9. Dans le répertoire web/WEB-INF, créez un nouveau répertoire 'vues' et déplacez-y le fichier index.jsp du répertoire Web.

  10. Dans le fichier index.jsp, collez du code HTML dans la section body. Par exemple, le code du fichier index.jsp est placé en dessous

     & lt% @ page contentType = "text/html; charset = UTF-8" language = "Java"% & gt 
     & lthtml & gt 
     & lthead & gt 
     & titre & titre $ $ & titre/titre & gt 
     & lt/head & gt 
     & ltbody & gt 
     & ltp & gtHELLO WORLD & lt/p & gt 
     & lt/body & gt 
     & lt/html & gt 
    
  11. Dans le fichier web.xml, remplacez la valeur de la propriété url-pattern par * .form par /. Le fichier web.xml devrait maintenant contenir le code ci-dessous.

     & lt? xml version = "1.0" encoding = "UTF-8"? & gt 
     & ltweb-app xmlns = "http://xmlns.jcp.org/xml/ns/javaee". xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" 
     xsi: schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version = "3.1" & gt 
     & ltcontext-param & gt 
     & ltparam-name & gtcontextConfigLocation & lt/param-name & gt 
     & ltparam-value & gt/WEB-INF/applicationContext.xml & lt/param-value & gt 
     & lt/context-param & gt 
     & ltlistener & gt 
     & ltlistener-class & gtorg.springframework.web.context.ContextLoaderListener & lt/listener-class & gt 
     & lt/auditeur & gt 
     & ltservlet & gt 
     & ltservlet-name & gtdispatcher & lt/servlet-name & gt 
     & ltservlet-class & gtorg.springframework.web.servlet.DispatcherServlet & lt/servlet-class & gt 
     & ltload-on-startup & gt1 & lt/chargement-au-démarrage & gt 
     & lt/servlet & gt 
     & ltservlet-mapping & gt 
     & ltservlet-name & gtdispatcher & lt/servlet-name & gt 
     & lturl-pattern & gt/& lt/url-pattern & gt 
     & lt/servlet-mapping & gt 
     & lt/web-app & gt 
    
  12. Cliquez maintenant avec le bouton droit de la souris sur le nom de votre projet et sélectionnez "Ouvrir les paramètres du module ...". Choisissez Modules -> le nom de votre application -> Web et modifiez dans la fenêtre WebResourceDirectory votre répertoire de ressources Web en répertoire\WebApp\Web où répertoire est l'emplacement de votre projet IntelliJ sur votre ordinateur. Puis cliquez sur Appliquer et sur OK.

  13. Maintenant, nous devons éditer les configurations d'exécution. Appuyez sur la flèche vers le bas en regard de la flèche verte et sélectionnez Modifier les configurations ... Puis cliquez sur vert +. Choisissez Tomcat Server -> Local. Dans la section "Serveur d'applications", choisissez votre répertoire principal Tomcat. Vous verrez Avertissement en bas de la fenêtre. Cliquez sur Réparer et sélectionnez "WebApp: war eploded" ou quelque chose de similaire. Cela dépend de votre nom d'application. Puis cliquez sur Appliquer et sur OK.

C'est tout :) Maintenant, vous pouvez appuyer sur la flèche verte et voir votre premier site d'application Web dans votre navigateur Web préféré . Bonne chance! 

1
kmmm