web-dev-qa-db-fra.com

La ressource demandée n'est pas disponible au printemps MVC

Je suis nouveau au printemps MVC, j'essaie de déployer une application Hello World en elle.Mais je reçois toujours une erreur demandée de la ressource demandée sur la page jsp.J'utilise Tomcat 7. Ici, je colle mon code n'importe qui s'il vous plaît aidez ..

web.xml

<?xml version="1.0" encoding="UTF-8"?>
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Java.Sun.com/xml/ns/javaee"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee       
      http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">

<display-name>HelloWorldSpring</display-name>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

spring-servlet.xml

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">


<context:component-scan
    base-package="net.viralpatel.spring3.controller" />

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>
</beans>

Contrôleur de l'application

package net.viralpatel.spring3.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloWorldController {

    @RequestMapping("/hello")
    public ModelAndView helloWorld() {
        String message = "Hello World, Spring 3.0!";
        System.out.println(message);
        return new ModelAndView("hello", "message", message);
    }

}

hello.jsp

<html>
<head>
<title>Spring 3.0 MVC </title>
</head>
<body>
${message}
</body>
</html>

index.jsp

<html>
<head>

</head>
<body>
<a href="hello">Say Hello</a>
</body>
</html>

ceci est mon application et j'ajoute également une capture d'écran de la structure de mon projet.enter image description here

14
Subho

Le problème principal était avec <url-pattern>*.html</url-pattern>
J'ai fait les changements suivants dans votre code et je peux exécuter le même code sur ma machine

1) changé <url-pattern>*.html</url-pattern> en <url-pattern>/</url-pattern>
2) copié jstl-1.2.jar dans le dossier lib.

9
Rohan

Il suffit de changer votre contrôleur comme suit

@Controller
    @RequestMapping("/hello")
    public class HelloWorldController {

    @RequestMapping(method = RequestMethod.GET)
    public String helloWorld(ModelMap model, HttpServletRequest request) {
        String message = "Hello World, Spring 3.0!";
        System.out.println(message);
        model.addAttribute("message", message);
        return "hello";
    }
    }

espérons que cela résoudra votre problème

2
Ashish Jagtap

J'ai ressenti le même problème. J'ai ajouté le jstl 1.2.jar et cela a fonctionné pour moi.

0
pushpendra yadav

Eh bien, j’ai aussi fait face à ce problème en suivant this le tutoriel et le code ci-dessus semblent également provenir de ce tutoriel. L’ajout de spring-webmvc-xyz.RELEASE.jar et la suppression des fichiers "asm" et "web.servlet" fonctionnaient pour moi . J'espère que cela aiderait quelqu'un à apprendre le printemps. 

0
Ajay

J'ai eu un problème similaire et je crois que c'était lié à Maven . Ce que j'ai fait est de changer la dépendance de jstl de jstl: jstl: 1.2 à javax.servlet: jstl: 1.2 Je ne crois pas que ce soit la raison, mais après que Maven a mis à jour ses dépendances, cela a commencé à fonctionner. Ensuite, cela n'a fait aucune différence que celui que j'ai utilisé. Je pense que cela a à voir avec les bibliothèques n'étant pas au bon endroit ...

 enter image description here

0
Witold Kaczurba

Modifier les éléments suivants dans le fichier web.xml

<servlet>

      <servlet-name>HelloWeb</servlet-name>
      <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/HelloWeb-servlet.xml</param-value>
        </init-param>
      <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
      <servlet-name>HelloWeb</servlet-name>
      <url-pattern>/</url-pattern>
   </servlet-mapping>
0
Lakshmi Murali

Une fois que vous avez vérifié la structure de vos dossiers, tous les fichiers printemps doivent être copiés dans le dossier lib situé dans Web-INF et importés à partir de là.

0
Fenil