Vous êtes sur la page 1sur 7

Spring web MVC

Les tapes suivre pour crer un Spring MVC :


-

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">

<bean name="/test" class="spring.mvc.MyController"></bean>


</beans>

On peut avoir plus quun 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 name="/test1" class="spring.mvc.MyController1"></bean> <bean name="/test2" class="spring.mvc.MyController2"></bean>


</beans>

- 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>

je suis une jsp et je porte le modele<br/> ${model}


</body> </html>

- Une page web pour le teste : 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>

<a href="esisa/test">cliquer ici</a>

Solution bas sur la classe <SimpleUrlhandlerMapping> :

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>

je suis une jsp et je porte le modele<br/>


</body> </html>

${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>

<a href="esisa/test">cliquer ici</a>


-

</body> </html>

On a la possibilit de communiquer un Bean la JSP.

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">

<title>Insert title here</title> </head> <body>

<%

Produit p = (Produit)request.getAttribute("produit");

%> <%= p %></body>


</html>

Vous aimerez peut-être aussi