Académique Documents
Professionnel Documents
Culture Documents
Solution bas sur la classe <BeanNameUrlHandlerMapping> : Dans le ficher web.xml on dclare un DispatcherServlet qui se trouve dans le Framework Spring MVC : Et on dclare une servlet qui a comme proprit :
servlet-name : cest le nom quon va attribuer la DispatcherServlet. servlet-class : cest lappel la class du Framework Spring MVC :
Web.xml :
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>FirstExample</display-name> <servlet> <servlet-name>mydispacher</servlet-name> <servletclass>org.springframework.web.servlet.DispatcherServlet</servlet -class> </servlet> <servlet-mapping> <servlet-name>mydispacher</servlet-name> <url-pattern>/esisa/*</url-pattern> </servlet-mapping>
</web-app>
On crera un 2 eme fichier xml qui doit porter le nom quon a mis dans <servlet-name>XXXX</servlet-name>suivis de servlet.xml : dans notre exemple ca sera mydispatcher-servlet.xml. ce fichier va contenir un Bean qui va appeler notre contrleur.
mydispatcher-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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
mydispatcher-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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
- Le
Contrleur : cest une classe qui implmente la classe Controller du Framework Spring MVC et quon doit dfinir la mthode HandlerRequest. La Classe MyController :
package spring.mvc; import import import import javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; org.springframework.web.servlet.ModelAndView; org.springframework.web.servlet.mvc.Controller;
public class MyController implements Controller { public MyController(){ System.out.println("je suis dans le constructeur de MyController"); } public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("dans handelRequest "); ModelAndView model=new ModelAndView(mavue.jsp); return model; } }
-
La vue : cest une JSP qui va contenir le model, dans notre exemple ca sappelle mavue.jsp.
La vue mavue.jsp :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head>
Web.xml :
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>FirstExample</display-name> <servlet> <servlet-name>mydispacher</servlet-name> <servletclass>org.springframework.web.servlet.DispatcherServlet</servlet -class> </servlet> <servlet-mapping> <servlet-name>mydispacher</servlet-name> <url-pattern>/esisa/*</url-pattern> </servlet-mapping>
</web-app>
On crera un 2 eme fichier xml qui doit porter le nom quon a mis dans <servlet-name>XXXX</servlet-name>suivis de servlet.xml : dans notre exemple ca sera mydispatcher-servlet.xml. ce fichier va contenir un Bean qui va appeler notre contrleur.
mydispatcher-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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="test">ctrl</prop> </props> </property> </bean> <bean id="ctrl" class="spring.mvc.MyController"> </bean>
- Le
Contrleur : cest une classe qui implmente la classe Controller du Framework Spring MVC et quon doit dfinir la mthode HandlerRequest. La Classe MyController :
package spring.mvc; import import import import javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; org.springframework.web.servlet.ModelAndView; org.springframework.web.servlet.mvc.Controller;
public class MyController implements Controller { public MyController(){ System.out.println("je suis dans le constructeur de MyController"); } public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("dans handelRequest "); ModelAndView model=new ModelAndView(mavue.jsp); return model; } }
-
La vue : cest une JSP qui va contenir le model, dans notre exemple ca sappelle mavue.jsp.
La vue mavue.jsp :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body>
${model}
Index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body>
</body> </html>
La Classe MyController :
package spring.mvc; import import import import javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; org.springframework.web.servlet.ModelAndView; org.springframework.web.servlet.mvc.Controller;
public class MyController implements Controller { public MyController(){ System.out.println("je suis dans le constructeur de MyController"); } public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { Produit p = new Produit(C01,Ecran,1200,10); System.out.println("Dans handelRequest "); ModelAndView model=new ModelAndView(mavue.jsp,"produit", p); return model; } }
-
La vue : mavue.jsp.
La vue mavue.jsp :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<%
Produit p = (Produit)request.getAttribute("produit");