SPRING WEB MVC erreur lors d'un addobject

SPRING WEB MVC erreur lors d'un addobject - Java - Programmation

Marsh Posté le 06-02-2012 à 19:17:53    

plop,
 
donc voila, j'ai un controller, dedans un modelAndView appelé mav, quand je veux ajouter un objet en faisant
 

Code :
  1. String test = "ijgyyg";
  2. mav.addObject("testo", test);


 
j'ai le droit a cette magnifique erreur sur mon navigateur quand je tente d'acceder a la page

Citation :

exception
 
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)
 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
cause mère
 
java.lang.NullPointerException
 presentation.GestionUtilsController.getForm(GestionUtilsController.java:25)
 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 java.lang.reflect.Method.invoke(Unknown Source)
 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


 
(la page marche si je commente mav.addObject("testo", test);)
 
voila mon web.xml

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ [...] .xsd&#034; id="WebApp_ID" version="2.5">
  3.   <display-name>PJ2EE</display-name>
  4.   <welcome-file-list>
  5.     <welcome-file>index.html</welcome-file>
  6.   </welcome-file-list>
  7.  
  8.     <servlet>
  9.     <servlet-name>Spring MVC DispatcherServlet</servlet-name>
  10.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  11.     <init-param>
  12.       <param-name>contextConfigLocation</param-name>
  13.       <param-value>
  14.    /WEB-INF/servlet-context.xml
  15.   </param-value>
  16.     </init-param>
  17.     <load-on-startup>1</load-on-startup>
  18.   </servlet>
  19.  
  20.   <servlet-mapping>
  21.     <servlet-name>Spring MVC DispatcherServlet</servlet-name>
  22.     <url-pattern>/url/*</url-pattern>
  23.   </servlet-mapping>
  24. </web-app>


 
mon servlet-context.xml

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/sch [...] vc-3.0.xsd
  7.  http://www.springframework.org/schema/beans http://www.springframework.org/sch [...] ns-3.0.xsd
  8.  http://www.springframework.org/schema/context http://www.springframework.org/sch [...] &#034;&gt;
  9. <mvc:annotation-driven />
  10. <bean id="GestionUtilsController" class="presentation.GestionUtilsController">
  11. </bean>
  12. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
  13.  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
  14.  <property name="prefix">
  15.   <value>/WEB-INF/jsp/</value>
  16.  </property>
  17.  <property name="suffix">
  18.   <value>.jsp</value>
  19.  </property>
  20. </bean>
  21. <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
  22. </beans>


 
la page qui envoi vers mon controller buggé, index.html

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  5. <title>MediaGestion</title>
  6. </head>
  7. <body>
  8. veuillez choisir votre categorie :
  9. <a href="url/gestionUtils">Gestion Utilisateurs</a>
  10. <a href="url/gestionLivres">Gestion Livres</a>
  11. <a href="url/gestionDVDs">Gestion DVDs</a>
  12. <a href="url/gestionCDROMs">Gestion CDROMs</a>
  13. </body>
  14. </html>


 
et mon controller

Code :
  1. package presentation;
  2. import java.util.logging.Logger;
  3. import javax.validation.Valid;
  4. import metier.Utils;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.ui.Model;
  7. import org.springframework.validation.BindingResult;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RequestMethod;
  10. import org.springframework.web.servlet.ModelAndView;
  11. @Controller
  12. public class GestionUtilsController {
  13. private static final Logger log = Logger.getLogger(GestionUtilsController.class.getName());
  14. @RequestMapping(value="/gestionUtils", method=RequestMethod.GET) //vient de index
  15. public ModelAndView getForm() {
  16.  ModelAndView mav = new ModelAndView();
  17.  String test = "ijgyyg";
  18.  mav.addObject("testo", test);
  19.  mav.setViewName("gestionUtilsWP" );     // indique quelle jsp a afficher
  20.  return mav;
  21. }
  22. }


 
La JSP au cas ou :

Code :
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2.     pageEncoding="ISO-8859-1"%>
  3.    
  4.    
  5. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  6. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  7. <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  9. <html>
  10. <head>
  11. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  12. <title>Gestion des Utilisateurs</title>
  13. <link href="<c:url value="/style.css" />" rel="stylesheet" type="text/css"/>
  14. </head>
  15. <body>
  16. <!-- barre de recherche --->
  17. <div id="barre">
  18. <form method=post action="url/rechercheUtils">
  19. <INPUT type=text value="Saisir Valeur..." name="searchField">
  20. <INPUT type="submit" value="Recherche">
  21. </form>
  22. </div>
  23. <!-- Menu --->
  24. <div id="menu">
  25. <a href="url/editUtils">Modifier</a>
  26. <a href="url/supprUtils">Supprimer</a>
  27. <a href="url/addUtils">Ajouter</a>
  28. </div>
  29. <!-- cadre principal --->
  30. <div id="cadre">
  31. <c:out value="${testo}" />
  32. ${testo}
  33. </div>
  34. </body>
  35. </html>


 
des idées?
merci =D


Message édité par sliders_alpha le 07-02-2012 à 00:28:51
Reply

Marsh Posté le 06-02-2012 à 19:17:53   

Reply

Marsh Posté le 07-02-2012 à 00:48:26    

SOLUTION :
 
si je fais, dans le controller,

Code :
  1. ModelAndView mav = new ModelAndView("gestionUtilsWP" );
  2. String test = "ijgyyg";
  3. mav.addObject("testo", test);
  4. return mav;


 
au lieu de  
 

Code :
  1. ModelAndView mav = new ModelAndView();
  2. String test = "ijgyyg";
  3. mav.addObject("testo", test);
  4. mav.setViewName("gestionUtilsWP" );     // indique quelle jsp a afficher
  5. return mav;


 
ça marche!!! aller savoir pourquoi =o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed