English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring proporciona soporte de integración con el framework de tiles de Apache. Por lo tanto, podemos utilizar el soporte de Spring Tile para gestionar simplemente el diseño de aplicaciones Spring MVC.
Reutilización: : Podemos usar un solo componente en varias páginas, como componentes de encabezado y pie de página.
Control centralizado: Podemos controlar el diseño de la página a través de una única página de plantilla
Facilidad de cambio de diseño: : Con una única página de plantilla, podemos cambiar el diseño de la página en cualquier momento. Por lo tanto, su sitio web puede adoptar fácilmente nuevas tecnologías, como navegadores, 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) { //escribir el código aquí para agregar contacto return "redirect:contact.html"; } @RequestMapping("/contact") public String showContacts(Model m) { m.addAttribute("command", new Contact()); return "contact"; } }
web.xml
<?xml versión="1.0" codificación="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-lista> <welcome-file>index.jsp</welcome-file> </welcome-file-lista> <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" clase="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> <propiedad nombre="definiciones"> <lista> <valor>/WEB-INF/tiles.xml</valor> </lista> </propiedad> </bean> </beans>
tiles.xml
<?xml versión="1.0" codificación="UTF-8" --> <!DOCTYPE tiles-definiciones PÚBLICO "-//Fundación de Software Apache//DTD Configuración Tiles 2.0//EN" "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> <tiles-definitions> <definición nombre="base.definición" plantilla="/WEB-INF/jsp/layout.jsp"> <poner-atributo nombre="título" valor="" /> <poner-atributo nombre="encabezado" valor="/WEB-INF/jsp/header.jsp" /> <poner-atributo nombre="menú" valor="/WEB-INF/jsp/menu.jsp" /> <poner-atributo nombre="cuerpo" valor="" /> <poner-atributo nombre="pie" valor="/WEB-INF/jsp/footer.jsp" /> </definición> <definición nombre="contact" extiende="base.definición"> <poner-atributo nombre="título" valor="Gestor de Contactos" /> <poner-atributo nombre="cuerpo" valor="/WEB-INF/jsp/contact.jsp" /> </definición> <definición nombre="hello" extiende="base.definición"> <poner-atributo nombre="título" valor="Hello Spring MVC" /> <poner-atributo nombre="cuerpo" valor="/WEB-INF/jsp/hello.jsp" /> </definición> </tiles-definitions>
index.jsp
<a href="hello.html">Hello Spring</a> | <a href="contact.html">Contacto</a>
hello.jsp
<html> <head> <title>Ejemplo de Spring MVC</title> </head> <body> <h1>Bienvenido a Spring MVC</h1> <p>Mensaje es: ${message}/p> </body> </html>
contact.jsp
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <html> <head> <title>Formulario de Contacto de Spring Tiles</title> </head> <body> <h2>Gestor de Contactos</h2> <form:form method="post" action="addContact.html"> <table> <tr> <td><form:label path="firstname">Nombre</form:label></td> <td><form:input path="firstname" /></td> </tr> <tr> <td><form:label path="lastname">Apellido</form:label></td> <td><form:input path="lastname" /></td> </tr> <tr> <td><form:label path="lastname">Correo Electrónico</form:label></td> <td><form:input path="email" /></td> </tr> <tr> <td><form:label path="lastname">Teléfono</form:label></td> <td><form:input path="telephone" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="Agregar Contacto"/> </td> </tr> </table> </form:form> </body> </html>
header.jsp
<h2>Encabezado</h2> <hr/>
footer.jsp
<hr/> <p>Derechos de autor 2010-2014 oldtoolbag.com.</p>
menu.jsp
<p>Menú 1</p> <p>Menú 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> <div style="float:left;padding:10px;width:15%; /></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>