zoukankan      html  css  js  c++  java
  • Spring 3 MVC Registration Form Example

    In this tutorial we are create RegistrationForm in Spring 3.0. In this tutorial we are using annotation based Controller and another related files.

    Spring 3 MVC Registration Form Example

    In this tutorial we are create RegistrationForm in Spring 3.0. In  this tutorial we are using annotation based Controller and another related files.

    Example discussed here will present user registration form to the user. The fields of the registration form are:

    • User Name
    • Password
    • Confirm Password
    • Email

    Our application will validate all these fields. If there is some error it will display on the form.

    In this tutorial we are using following jar files.

    In this tutorial  apply  following  steps.

    Step 1:

    First  create a  Dynamic  Web Project  "Spring3Example". Now create  "index.jsp"  under  WebContent folder. The code of "index.jsp"  as defined:

    <%@ 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>Spring 3, MVC Examples</title>

    </head>

    <body>

    <h1>Spring 3, MVC Examples</h1>

    <ul>

    <li><a href="forms/registrationform.html">Registration Form</a></li>

    </ul>

    </body>

    </html>

    Step 2:

    Now  create  model class "Registration.java"  user  src folder.  Registration.java class use variable userName, password , confirmPassword and email. The  code of  "Registration.java"   defined as:

     package net.roseindia.form;

    import javax.validation.constraints.Size;
    import org.hibernate.validator.constraints.Email;
    import org.hibernate.validator.constraints.NotEmpty;

    public class Registration {
            private String userName;
            @NotEmpty
            @Size(min = 4, max = 20)
            private String password;
            @NotEmpty
            private String confirmPassword;
            @NotEmpty
            @Email
            private String email;

            public void setUserName(String userName) {
                    this.userName = userName;
            }

            public String getUserName() {
                    return userName;
            }

            public void setPassword(String password) {
                    this.password = password;
            }

            public String getPassword() {
                    return password;
            }

            public void setConfirmPassword(String confirmPassword) {
                    this.confirmPassword = confirmPassword;
            }

            public String getConfirmPassword() {
                    return confirmPassword;
            }

            public void setEmail(String email) {
                    this.email = email;
            }

            public String getEmail() {
                    return email;
            }

    }

    Step 3:

    Now create  Controller class "RegistrationController.java" under  src folder. "RegistrationController.java"  class use for custom validation purpose class "RegistrationValidation.java". "RegistrationController.java"  use @Autowired for  access  "RegistrationValidation.java" and another configration purpose. The code of   "RegistrationController.java" defined as :

    package net.roseindia.controllers;

    import java.util.Map;
    import javax.validation.Valid;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.validation.BindingResult;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    import net.roseindia.form.Registration;

    @Controller
    @RequestMapping("/registrationform.html")
    public class RegistrationController {
            @Autowired
            private RegistrationValidation registrationValidation;

            public void setRegistrationValidation(
                            RegistrationValidation registrationValidation) {
                    this.registrationValidation = registrationValidation;
            }

            // Display the form on the get request
            @RequestMapping(method = RequestMethod.GET)
            public String showRegistration(Map model) {
                    Registration registration = new Registration();
                    model.put("registration", registration);
                    return "registrationform";
            }

            // Process the form.
            @RequestMapping(method = RequestMethod.POST)
            public String processRegistration(@Valid Registration registration,
                            BindingResult result) {
                    // set custom Validation by user
                    registrationValidation.validate(registration, result);
                    if (result.hasErrors()) {
                            return "registrationform";
                    }
                    return "registrationsuccess";
            }
    }

    Step 4:

    Now create the validation class "RegistrationValidation.java" under src folder. In "RegistrationValidation.java" you defined all error that is necessary  for validation. The code of  "RegistrationValidation.java" defined  :

    package net.roseindia.controllers;

    import org.springframework.stereotype.Component;
    import org.springframework.validation.Errors;
    import org.springframework.validation.ValidationUtils;
    import net.roseindia.form.Registration;

    @Component("registrationValidator")
    public class RegistrationValidation {
      public boolean supports(Class<?> klass) {
        return Registration.class.isAssignableFrom(klass);
      }

      public void validate(Object target, Errors errors) {
        Registration registration = (Registration) target;
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "userName",
            "NotEmpty.registration.userName",
            "User Name must not be Empty.");
        String userName = registration.getUserName();
        if ((userName.length()) > 50) {
          errors.rejectValue("userName",
              "lengthOfUser.registration.userName",
              "User Name must not more than 50 characters.");
        }
        if (!(registration.getPassword()).equals(registration
            .getConfirmPassword())) {
          errors.rejectValue("password",
              "matchingPassword.registration.password",
              "Password and Confirm Password Not match.");
        }
      }
    }

    Step 5:

    Now create the views folder under WebContent/WEB-INF. Again create the "registrationform.jsp"  under views folder. The path of   "registrationform.jsp"   is  WebContent/WEB-INF/views/registrationform.jsp and code given below :

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"

    pageEncoding="ISO-8859-1"%>

    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

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

    <form:form method="Post" action="registrationform.html"

    commandName="registration">

    <table>

    <tr>

    <td>User Name:<FONT color="red"><form:errors

    path="userName" /></FONT></td>

    </tr>

    <tr>

    <td><form:input path="userName" /></td>

    </tr>

    <tr>

    <td>Password:<FONT color="red"><form:errors

    path="password" /></FONT></td>

    </tr>

    <tr>

    <td><form:password path="password" /></td>

    </tr>

    <tr>

    <td>Confirm Password:<FONT color="red"><form:errors

    path="confirmPassword" /></FONT></td>

    </tr>

    <tr>

    <td><form:password path="confirmPassword" /></td>

    </tr>

    <tr>

    <td>Email:<FONT color="red"><form:errors path="email" /></FONT></td>

    </tr>

    <tr>

    <td><form:input path="email" /></td>

    </tr>

    <tr>

    <td><input type="submit" value="Submit" /></td>

    </tr>

    </table>

    </form:form>

    </body>

    </html>

    Step 6:

    Now  create the  "registrationsuccess.jsp"  under WebContent/WEB-INF/views. The code of    "registrationsuccess.jsp" is given as:

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"

    pageEncoding="ISO-8859-1"%>

    <%@taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core"%>

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

    <h3>Welcome Registration Successfully.</h3>

    <table>

    <tr>

    <td>User Name :</td>

    <td><core:out value="${registration.userName}" /></td>

    </tr>

    <tr>

    <td>Password :</td>

    <td><core:out value="${registration.password}" /></td>

    </tr>

    </table>

    </body>

    </html>

    Step 7:

    Now modify the web.xml  under WebContent/WEB-INF. The  code of web.xml   as:

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app version="2.5" 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_5.xsd">

    <display-name>Spring3Example</display-name>

    <servlet>

    <servlet-name>dispatcher</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

    <servlet-name>dispatcher</servlet-name>

    <url-pattern>/forms/*</url-pattern>

    </servlet-mapping>

    <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>

    </web-app>

    Step 8:

    Now  create the "dispatcher-servlet.xml"  under WebContent/WEB-INF that  configuration  all Spring  related. The code "dispatcher-servlet.xml" given as:

    <?xml version="1.0" encoding="UTF-8"?>

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

    xmlns:mvc="http://www.springframework.org/schema/mvc"

    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

    http://www.springframework.org/schema/mvc

    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

    ">

    <!-- Enable annotation driven controllers, validation etc... -->

    <mvc:annotation-driven />

    <context:component-scan base-package="net.roseindia.controllers" />

    <bean id="viewResolver"

    class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix">

    <value>/WEB-INF/views/</value>

    </property>

    <property name="suffix">

    <value>.jsp</value>

    </property>

    </bean>

    <bean id="messageSource"

    class="org.springframework.context.support.ReloadableResourceBundleMessageSource">

    <property name="basename" value="/WEB-INF/messages" />

    </bean>

    </beans>

    Step 9:

    Now  create the messages properties file "messages.properties"  under  WebContent/WEB-INF,and modify the "messages.properties"  as:

    NotEmpty.registration.password=Password must not be blank.

    Size.registration.password=Password must between 4 to 20 characters.

    Step 10:

    Now  run Application display output as:::

    Again click hyperlink Registration Form  display Registration Form and if  press  Submit Button without any value enter in text field display error messages as:

    Again if User Name more than 50 Characters , (password and confirm password) not match  and email incorrect then display error message as:

    If All information are valid then display Registration Success Page as:

    Download  the code of  the  example

  • 相关阅读:
    SpringBoot接口文件findBy方法写错导致抛出IllegalArgumentException
    用tomcat启动spring-boot
    Idea使用tool window中的persistence功能一键生成数据库实体
    Idea 启动 tomcat 报错
    详细梳理ajax跨域4种解决方案
    他们权利意识强,但是也会为生活牺牲很多
    每月碎碎念 | 2019.09
    说好不哭 我不会走
    css实现内容不相同的左右两个div等高
    简单了解css3轮廓outline
  • 原文地址:https://www.cnblogs.com/chenying99/p/2392713.html
Copyright © 2011-2022 走看看