SpringMVC学习笔记(四)使用JSP处理表单(处理用户注册表单)

参考

(1)《Spring入门经典》(基于这本书第三章)


步骤

(1)根据原型maven-archetype-webapp创建一个空的Maven Web应用程序项目。向pom.xml文件中添加spring-webmvc及其子项目依赖项,这里spring的版本为4.1.7.RELEASE

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zqx</groupId>
  <artifactId>SpringMVCFormelements</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>SpringMVCFormelements Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.1.7.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.1.7.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.1.7.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>4.1.7.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.1.7.RELEASE</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>SpringMVCFormelements</finalName>
  </build>
</project>

(2)在web.xml文件中通过URL映射定义Dispatecher Servlet:

web.xml:

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

(3)为应用程序上下文配置创建springmvc-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"
       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-4.0.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context-4.0.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <context:component-scan base-package="com.wiley.beginningspring.ch3" />
    <context:annotation-config />
    <mvc:annotation-driven />

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

(4)创建UserController类:

package com.wiley.beginningspring.ch3.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.wiley.beginningspring.ch3.domain.Gender;
import com.wiley.beginningspring.ch3.domain.User;

@Controller
public class UserController {

    private static final String[] countries = { "Turkey", "United States", "Germany", "China"};


    @RequestMapping(value = "/form")
    public ModelAndView user() {
        ModelAndView modelAndView = new ModelAndView("userForm", "user", new User());
        modelAndView.addObject("genders", Gender.values());
        modelAndView.addObject("countries", countries);

        return modelAndView;
    }

    @RequestMapping(value = "/result")
    public ModelAndView processUser(User user) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("userResult");

        modelAndView.addObject("u", user);

        return modelAndView;
    }
}

(5)在/WEB-INF/pages文件夹下创建userForm.jsp页面:

<%@ page contentType="text/html; charset=ISO-8859-1" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="mvc" %>
<html>
<head>
    <title>Spring MVC Form Handling</title>
</head>
<body>

<h2>User Registration Form</h2>
<mvc:form modelAttribute="user" action="result.mvc">
    <table>
        <tr>
            <td><mvc:label path="name">Name</mvc:label></td>
            <td><mvc:input path="name" /></td>
        </tr>
        <tr>
            <td><mvc:label path="lastname">Last Name</mvc:label></td>
            <td><mvc:input path="lastname" /></td>
        </tr>
        <tr>
            <td><mvc:label path="password">Password</mvc:label></td>
            <td><mvc:password path="password" /></td>
        </tr>
        <tr>
            <td><mvc:label path="detail">Detail</mvc:label></td>
            <td><mvc:textarea path="detail" /></td>
        </tr>
        <tr>
            <td><mvc:label path="birthDate">Birth Date</mvc:label></td>
            <td><mvc:input path="birthDate" /></td>
        </tr>
        <tr>
            <td><mvc:label path="gender">Gender</mvc:label></td>
            <td><mvc:radiobuttons path="gender" items="${genders}" /></td>
        </tr>
        <tr>
            <td><mvc:label path="country">Country</mvc:label></td>
            <td><mvc:select path="country" items="${countries}" /></td>
        </tr>
        <tr>
            <td><mvc:label path="nonSmoking">Non Smoking</mvc:label></td>
            <td><mvc:checkbox path="nonSmoking" /></td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit" value="Submit" />
            </td>
        </tr>
    </table>
</mvc:form>
</body>
</html>

(6)在/WEB-INF/pages文件夹下创建userResult.jsp页面:

<%@ page contentType="text/html; charset=ISO-8859-1" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="mvc" %>
<html>
<head>
    <title>Spring MVC Form Handling</title>
</head>
<body>
<h2>User Registration Result</h2>
<table>
    <tr>
        <td>Name</td>
        <td>${u.name}</td>
    </tr>
    <tr>
        <td>Last name</td>
        <td>${u.lastname}</td>
    </tr>
    <tr>
        <td>Password</td>
        <td>${u.password}</td>
    </tr>
    <tr>
        <td>Detail</td>
        <td>${u.detail}</td>
    </tr>
    <tr>
        <td>Birth Date</td>
        <td>${u.birthDate}</td>
    </tr>
    <tr>
        <td>Gender</td>
        <td>${u.gender}</td>
    </tr>
    <tr>
        <td>Country</td>
        <td>${u.country}</td>
    </tr>
    <tr>
        <td>Non-Smoking</td>
        <td>${u.nonSmoking}</td>
    </tr>
</table>
</body>
</html>

(7)代码结构

这里写图片描述

(8)测试

这里写图片描述
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
regedit.jsp <%@ page contentType="text/html;charset=UTF-8"%> <script language="javascript"> function on_submit() { if (form1.username.value == "") { alert("用户名不能为空,请输入用户名!"); form1.username.focus(); return false; } if (form1.userpassword.value == "") { alert("用户密码不能为空,请输入密码!"); form1.userpassword.focus(); return false; } if (form1.userpassword2.value == "") { alert("用户确认密码不能为空,请输入密码!"); form1.userpassword2.focus(); return false; } if (form1.userpassword.value != form1.userpassword2.value) { alert("密码与确认密码不同"); form1.userpassword.focus(); return false; } } </script> <script language="javascript"> function check(action) { form1.action=action; form1.submit(); if (form1.username.value == "") { alert("用户名不能为空,请输入用户名!"); window.location.href="regedit.jsp"; } } </script> <html> <head> <title>无标题文档</title> </head> <body> <form name="form1" method="post" action="regeditIn.jsp" onSubmit="return on_submit()"> 用户名: <input type="text" name="username"/> <input type="button" name="Button" value="检测用户" onClick="check('checkuser.jsp')"> <p>密码: <input type="password" name="userpassword"/> </p> <p>确认密码: <input type="password" name="userpassword2"/> </p> <p> <select name="selectlogrole"> <option value="student">学生</option> <option value="teacher">老师</option> <option value="admin">管理员</option> </select> </p> <p align="left"> <input type="submit" name="Submit" value="提交"/> </p> </form> </body> </html> regeditIn.jsp <%@ page contentType="text/html;charset=UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="Bean.QueryBean" %> <jsp:useBean id="query" class="Bean.QueryBean" scope="session"> <jsp:setProperty name="query" property="*"/> </jsp:useBean> <html> <body> <% request.setCharacterEncoding("UTF-8"); String name=request.getParameter("username"); String password=request.getParameter("userpassword"); String s=request.getParameter("selectlogrole"); String str="select username from userinfo where username='"+name+"'"; ResultSet rs=query.executeQuery(str); if(rs.next()){ %> <script language="javascript"> alert("此用户已经被占用请重新注册"); history.back(); </script> <% }else{ String sql="insert into userinfo(username,userpassword,logrole) values('"+name+"','"+password+"','"+s+"')"; boolean sert=query.executeUpdata(sql); if(sert) {%> <script language="javascript"> alert("注册成功"); window.location.href="index.jsp"; </script> <% }else { %> <script language="javascript"> alert("注册失败!!"); history.back(); </script> <% } } %> </body> </html> checkuser.jsp <%@ page contentType="text/html;charset=UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="Bean.QueryBean" %> <jsp:useBean id="query" class="Bean.QueryBean" scope="session"> <jsp:setProperty name="query" property="*"/> </jsp:useBean> <html> <body> <% request.setCharacterEncoding("UTF-8"); String name=request.getParameter("username"); String str="select username from userinfo where username='"+name+"'"; ResultSet rs=query.executeQuery(str); if(rs.next()){ %> <script language="javascript"> alert("此用户已经被占用"); history.back(); </script> <% } else { %> <script language="javascript"> alert("此用户可用"); history.back(); </script> <% } %> </body> </html>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值