English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring fournit une intégration avec le cadre apache tile. Par conséquent, nous pouvons gérer simplement la mise en page des applications Spring MVC à l'aide de la prise en charge de Spring Tile.
Réutilisabilité: : Nous pouvons réutiliser un seul composant sur plusieurs pages, par exemple les composants d'en-tête et de pied de page.
Contrôle centralisé des contrôles: Nous pouvons contrôler la mise en page de la page à l'aide d'une seule page de modèle
Facilité de modification de la mise en page: : Grâce à une seule page de modèle, nous pouvons à tout moment modifier la mise en page de la page. Par conséquent, votre site web peut facilement adopter de nouvelles technologies, telles que les assistants, jQuery, etc.
pom.xml
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.1.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper --> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jasper</artifactId> <version>9.0.12</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.tiles/tiles-jsp --> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-jsp</artifactId> <version>3.0.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.tiles/tiles-servlet --> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-servlet</artifactId> <version>3.0.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.tiles/tiles-core --> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-core</artifactId> <version>3.0.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.tiles/tiles-el --> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-el</artifactId> <version>3.0.5</version> </dependency>
Contact.java
package com.w3codebox.form; public class Contact { private String firstname; private String lastname; private String email; private String telephone; public String getEmail() { return email; } public String getTelephone() { return telephone; } public void setEmail(String email) { this.email = email; } public void setTelephone(String telephone) { this.telephone = telephone; } public String getFirstname() { return firstname; } public String getLastname() { return lastname; } public void setFirstname(String firstname) { this.firstname = firstname; } public void setLastname(String lastname) { this.lastname = lastname; } }
HelloWorldController.java
package com.w3codebox.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloWorldController { @RequestMapping("/hello") public String helloWorld(Model m) { String message = "Hello World, Spring MVC @ w"3codebox"; m.addAttribute("message", message); return "hello"; } }
ContactController.java
package com.w3codebox.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.SessionAttributes; import com.w3codebox.form.Contact; @Controller @SessionAttributes public class ContactController { @RequestMapping(value = "/addContact", method = RequestMethod.POST) public String addContact(@ModelAttribute("contact") Contact contact, BindingResult result) { //Écrivez le code ici pour ajouter un contact return "redirect:contact.html"; } @RequestMapping("/contact") public String showContacts(Model m) { m.addAttribute("command", new Contact()); return "contact"; } }
web.xml
<?xml version="1.0" encodage="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_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>SpringTiles</display-name> <welcome-file-liste> <welcome-file>index.jsp</welcome-file> </welcome-file-liste> <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>*.html</url-pattern> </servlet-mapping> </web-app>
spring-servlet.xml
<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:annotation-config /> <context:component-scan base-package="com.w3codebox.controller" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver"}}/> <bean id="tilesConfigurer" classe="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> <propriété nom="définitions"> <liste> <valeur>/WEB-INF/tiles.xml</valeur> </liste> </propriété> </bean> </beans>
tiles.xml
<?xml version="1.0" encodage="UTF-8" ?"> <!DOCTYPE tiles-définitions PUBLIC "-//Fondation Apache//DTD Configuration Tiles 2.0//EN" "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> <tiles-definitions> <définition nom="base.définition" modèle="/WEB-INF/jsp/layout.jsp"> <put-attribut nom="title" valeur="" /> <put-attribut nom="header" valeur="/WEB-INF/jsp/header.jsp" /> <put-attribut nom="menu" valeur="/WEB-INF/jsp/menu.jsp" /> <put-attribut nom="body" valeur="" /> <put-attribut nom="footer" valeur="/WEB-INF/jsp/footer.jsp" /> </définition> <définition nom="contact" étend="base.définition"> <put-attribut nom="title" valeur="Gestionnaire de contact" /> <put-attribut nom="body" valeur="/WEB-INF/jsp/contact.jsp" /> </définition> <définition nom="hello" étend="base.définition"> <put-attribut nom="title" valeur="Hello Spring MVC" /> <put-attribut nom="body" valeur="/WEB-INF/jsp/hello.jsp" /> </définition> </tiles-definitions>
index.jsp
<a href="hello.html">Hello Spring</a> | <a href="contact.html">Contact</a>
hello.jsp
<html> <head> <title>Exemple Spring MVC</title> </head> <body> <h1>Bienvenue dans Spring MVC</h1> <p>Message est: ${message}</p> </body> </html>
contact.jsp
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <html> <head> <title>Formulaire de contact Spring Tiles</title> </head> <body> <h2>Gestionnaire de contact</h2> <form:form method="post" action="addContact.html"> <table> <tr> <td><form:label path="firstname">Prénom</form:label></td> <td><form:input path="firstname" /></td> </tr> <tr> <td><form:label path="lastname">Nom</form:label></td> <td><form:input path="lastname" /></td> </tr> <tr> <td><form:label path="lastname">Email</form:label></td> <td><form:input path="email" /></td> </tr> <tr> <td><form:label path="lastname">Téléphone</form:label></td> <td><form:input path="telephone" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="Ajouter un contact"/> </td> </tr> </table> </form:form> </body> </html>
header.jsp
<h2>Header</h2> <hr/>
footer.jsp
<hr/> <p>Copyright 2010-2014 oldtoolbag.com.</p>
menu.jsp
<p>Menu 1</p> <p>Menu 2</p>
layout.jsp
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> !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=UTF-8"> <title><tiles:insertAttribute name="title" ignore="true" /></title> </head> <body> <div><tiles:insertAttribute name="header" /></div> <div style="float:left;padding:10px;width:15;"><tiles:insertAttribute name="menu" /></div> <div style="float:left;padding:10px;width:80%;border-left:1px solid pink;"> <tiles:insertAttribute name="body" /></div> <div style="clear:both"><tiles:insertAttribute name="footer" /></div> </body> </html>