Ejemplos de procesamiento de formulario Spring MVC El siguiente ejemplo ilustra cómo escribir una aplicación simple basada en la web que utiliza formularios HTML utilizando el marco MVC web de Spring.
Construcción de un proyecto de prueba
(1) Cree un nuevo proyecto web de Java e introduzca varios paquetes JAR requeridos para proyectos SpringMVC. La estructura del proyecto y los paquetes JAR requeridos son los siguientes:
①Web.xml:
<web-app xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschemainstance" xsi: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaeeeeeeeeeee/web-app_3_1.xsd" version = "3.1"> <ervlet> <ervlet-name> springmvc </servlet> <Servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <load-on-startup> 1 </load-on-startup> </servlet> <servlet mapping> <servlet-mapping> <ervlet-name> springmvc </servlet> <uRl-Pattern>*. <filter-name> caracteresCodingFilter </filter-name> <filter-class> org.springframework.web.filter.characteriCodingFilter </filter-class> <it-param> <amamname> codificación </param-name> <amam-value> utf-8 </param-value> </init-param> </filtro-mappe> <filter-name> caracteresCodingFilter </filtre-name> <url-pattern>/*</sl-Pattern> </filter-mapping> </web-app>
Aquí hay un sufijo de URL de interceptación SpringMVC que termina con .html y procesarlo
②springmvc-servlet.xml:
<? xml versión = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" "" "" xmlns: contexte = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation http://www.springframework.org/schema/Beans/Spring-Beans-4.0.xsd http://www.springframework.org/schema/ContextExt http://www.springframe..Org/schema/contextextextext-4.0 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <context: component-scan base-package =" cn.zifangsky. * * .troller "/> </> </> <contextation-confiG/cotfig/ <
En el archivo de configuración anterior, <contexto: anotación-config /> activa algunas anotaciones definidas en el bean, mientras que <mvc: anotation-driven /> activa algunas configuraciones predeterminadas para SpringMVC. Al final del archivo de configuración, se define la correspondencia entre la vista lógica y la vista real. En una palabra, el prefijo de ruta y el sufijo definidos anteriormente se dan a la vista lógica devuelta. Este es el camino real a la vista real.
2. Use SpringMVC para procesar formularios de formulario
(1) Antes de comenzar oficialmente, cree un modelo y clase de enumeración:
① Usuario de entidad:
paquete cn.zifangsky.model; import java.time.localdate; import org.springframework.format.annotation.datetimeFormat; User de clase pública {Nombre de cadena privada; contraseña de cadena privada; trabajo de cadena privada; @DateTimeFormat (Pattern = "A yyyy-MM-DD") Private localDate Birthdate; género privado de género; país de cadena privada; booleano privado fumar; public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public String getPassword () {return Password; } public void setPassword (String Password) {this.password = contraseña; } public String getJob () {return trabajo; } public void setJob (trabajo de cadena) {this.job = trabajo; } public localdate getBirthDate () {return birthdate; } public void setBirthDate (localDate BirthDate) {this.birthdate = birthdate; } Public Gender getGender () {return gender; } public void setGender (género de género) {this.gender = gender; } public String getCountry () {Return Country; } public void setcountry (string country) {this.country = país; } public boolean issmoking () {return fumar; } public void setsmoking (boolean fumar) {this.smoking = fumar; }} ② Género de la clase de enumeración que representa el "género":
paquete cn.zifangsky.model; género público enum {macho, femenino;} A continuación se explicará brevemente el formulario de procesamiento de formulario de SpringMVC de acuerdo con el proceso de ejecución del programa, a saber, el llenado del formulario de primer plano> Procesamiento del controlador> Vista de resultados de procesamiento
(2) La página de inicio y la página de formulario del proyecto de prueba:
①Home Page index.jsp:
<% respuesta.sendedirect ("form.html"); %>Se puede ver que nuestra página de inicio aquí es muy simple, que es redirigir a "form.html", pero a través de nuestra configuración anterior en Web.xml, SpringMVC transferirá esta solicitud a un controlador específico para el procesamiento, por supuesto, está directamente a la página de formulario de formulario. La lógica de procesamiento específica en el controlador se discutirá a continuación
②Form formulario de formulario
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" PageEncoding = "UTF-8"%> <%@ taglib uri = "http://www.springframework.org/tags/form" prefix = "mvc"%> <html> <bead> <seH> <SEHA> http-equiv = "Content-type" content = "text/html; charset = utf-8"> <title> Spring MVC Form Handling </title> </head> <body> <h2> Registro de usuarios </h2> <mvc: formy modelattribute = "user" Action = "result.html"> <tr> <tr> <td> <mvc: Labor ruta = "nombre"> nombre: </mvc: etiqueta> </td> <td> <mvc: input path = "name"/> </tr> <tr> <tr> <td> <mvc: etiqueta path = "contraseña"> contraseña: </mvc: etiqueta> </td> <td> <mvc: contraseña = "contraseña"/> </td> <tr> <TD> <mvc: etiqueta path = "trabajo"> trabajo: </mvc: etiqueta> </td> <td> <mvc: textARea path = "trabajo"/> </td> </tr> <tr> <tr> <td> <mvc: etiqueta path = "birthate"> cumpleaños: </mvc: etiqueta> </td> <td <mvc: ruta de la etiqueta de la etiqueta de la etiqueta de nata /> </td> </tr> <tr> <td> <mvc: etiqueta path = "género"> género: </mvc: etiqueta> </td> <td> <mvc: radiobuttons path = "género" elementos = "$ {genders}"/> </td> </tr> <tr> <td> <mvc: etiqueta: etiqueta ruta = "país"> Residencia: </mvc: etiqueta> </td> <td> <mvc: select path = "país" items = "$ {países}"/> </td> </tr> <tr> <tr> <td> <mvc: etiqueta ruta de etiqueta /> </td> </tr> <tr> <td colspan = "2"> <input type = "subt" valor = "enviar"/> </td> </tr> </tr> </table> </mvc: form> </body> </html> Dado que colocamos esta página en el directorio web-INF, no podemos acceder a este archivo directamente a través de la URL. El "form.html" definido anteriormente debe transferirse al controlador para su procesamiento y mostrar esta página de vista. El propósito de esto es evitar que otras páginas privadas accedan a otras sin autorización. En el archivo anterior, es importante tener en cuenta:
(3) Clase de controlador UserController.java para procesamiento de lógica empresarial:
paquete cn.zifangsky.controller; importar org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.modelattribute; import org.springframework.web.bind.annotation.requestMapping; import org.springframwork.web.servlet.modelandview; import cn.zifangsky cn.zifangsky.model.user; @ControllerPublic Class Usercontroller {String final estático privado [] países = {"China", "Japón", "Corea del Norte", "Estados Unidos"}; @RequestMapping (value = "/form.html") public modelandView user () {modelandView modelandView = new ModelAndView ("UserForm"); modelandView.addoBject ("usuario", nuevo usuario ()); modelandView.addoBject ("géneros", gender.values ()); modelandview.addobject ("países", países); return ModelAndView; } @RequestMapping (valor = "/resultado.html") public ModelAndView ProcessUser (@ModelAttribute (value = "Usuario") Usuario U) {ModelAndView ModelAndView = new ModelAndView ("UserResult"); modelandView.addoBject ("u", u); return ModelAndView; }} Se puede ver que dos métodos se definen anteriormente, y sus funciones son transferir al formulario real para la solicitud "form.html" y manejar el formulario de formulario. Al procesar el formulario, recibí un tipo de usuario "U" a través de la anotación @modelattribute, que es el formulario de formulario completado primero, y lo siguiente es la visualización del formulario, por lo que no diré mucho
(4) Prueba:
①Fill en la forma:
②Los resultados muestran:
UserResult.jsp Página:
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <%@ taglib uri = "http://www.springframework.org/tags/form" prefix = "mvc"%> <! Doctype host público "-//w3cus Html 4.01 Transitional // en "" http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv = "content-type" content = "text/html; <h2> Registre los resultados </h2> <table> <ttr> <td> nombre: </td> <td> $ {u.name} </td> </tr> <tr> <tr> <td> contraseña: </td> <td> $ {u.password} </td> </tr> <tr> <tr> <td> trabajo: </td> <td>${u.job}</td> </tr> <tr> <td>Birthday:</td> <td>${u.birthDate}</td> </tr> <tr> <td>Gender:</td> <td>${u.gender}</td> </tr> <tr> <td>Residence:</td> <TD> $ {U.Country} </td> </tr> <tr> <td> fumar: </td> <td> $ {u.smoking} </td> </tr> </tr> </table> </body> </html>Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.