zoukankan      html  css  js  c++  java
  • SpringMVC封装表单数据

    1、domain类

     1 package com.xiaostudy.domain;
     2 
     3 public class User {
     4 
     5     private int id;
     6     private String username;
     7     private String password;
     8 
     9     public int getId() {
    10         return id;
    11     }
    12 
    13     public void setId(int id) {
    14         this.id = id;
    15     }
    16 
    17     public String getUsername() {
    18         return username;
    19     }
    20 
    21     public void setUsername(String username) {
    22         this.username = username;
    23     }
    24 
    25     public String getPassword() {
    26         return password;
    27     }
    28 
    29     public void setPassword(String password) {
    30         this.password = password;
    31     }
    32 
    33     @Override
    34     public String toString() {
    35         return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
    36     }
    37 
    38 }

    2、填写表单数据的jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7     <title>springMVC</title>
     8 </head>
     9 <body>
    10 <form action="${pageContext.request.contextPath }/command.do" method="post">
    11     ID:<input type="text" name="id" id="id"/>
    12     姓名:<input type="text" name="username" id="username"/>
    13     密码:<input type="password" name="password" id="password"/>
    14     <input type="submit" value="提交"/>
    15 </form>
    16 </body>
    17 </html>

    3、springmvc.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:mvc="http://www.springframework.org/schema/mvc"
     4     xmlns:aop="http://www.springframework.org/schema/aop" 
     5     xmlns:tx="http://www.springframework.org/schema/tx"
     6     xmlns:context="http://www.springframework.org/schema/context"
     7     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     8     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     9                         http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
    10                         http://www.springframework.org/schema/mvc 
    11                         http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
    12                         http://www.springframework.org/schema/context 
    13                         http://www.springframework.org/schema/context/spring-context-3.2.xsd 
    14                         http://www.springframework.org/schema/aop 
    15                         http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
    16                         http://www.springframework.org/schema/tx 
    17                         http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
    18         
    19         <!-- ======================================================================================================= -->
    20         <!-- 配置处理器映射器,springmvc默认的处理器映射器
    21         BeanNameUrlHandlerMapping:根据bean(自定义Controler)的name属性的url去寻找hanler(Action:Controller) -->
    22         <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    23         
    24         <bean name="/toadd.do" class="com.xiaostudy.ToAddController"/>
    25         
    26         <bean name="/command.do" class="com.xiaostudy.CommandController"/>
    27         
    28         <!-- 配置sprigmvc视图解析器:解析逻辑试图 
    29              后台返回逻辑试图:index
    30             视图解析器解析出真正物理视图:前缀+逻辑试图+后缀====/WEB-INF/index.jsp -->
    31         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    32             <property name="prefix" value="/WEB-INF/"/>
    33             <property name="suffix" value=".jsp"/>        
    34         </bean>
    35 </beans>

    4、负责跳转到add.jsp的类

     1 package com.xiaostudy;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpServletResponse;
     5 
     6 import org.springframework.web.servlet.ModelAndView;
     7 import org.springframework.web.servlet.mvc.Controller;
     8 
     9 public class ToAddController implements Controller{
    10 
    11     public ModelAndView handleRequest(HttpServletRequest request,
    12             HttpServletResponse response) throws Exception {
    13         ModelAndView mv = new ModelAndView();
    14         //调转到add添加页面视图
    15         mv.setViewName("add");
    16         return mv;
    17     }
    18 
    19 }

    5、处理表单数据类

     1 package com.xiaostudy;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpServletResponse;
     5 
     6 import org.springframework.validation.BindException;
     7 import org.springframework.web.servlet.ModelAndView;
     8 import org.springframework.web.servlet.mvc.AbstractCommandController;
     9 
    10 import com.xiaostudy.domain.User;
    11 
    12 public class CommandController extends AbstractCommandController {
    13     
    14     public CommandController() {
    15         this.setCommandClass(User.class);
    16     }
    17 
    18     @Override
    19     protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object command, BindException arg3)
    20             throws Exception {
    21         User user = (User)command;
    22         ModelAndView mv = new ModelAndView();
    23         mv.addObject("user", user);
    24         mv.setViewName("index");
    25         return mv;
    26     }
    27 
    28 }

    6、返回到jsp中

     1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
     2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
     3             "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7     <title>springMVC_demo</title>
     8 </head>
     9 <body>
    10     ${user.id }||${user.username }||${user.password }
    11 </body>
    12 </html>

    项目文件路径


     分析执行过程

    1、浏览器通过地址访问,经过web.xml拦截,交给springmvc.xml

    2、springmvc.xml通过匹配,找到相应的类

    3、类返回一个逻辑视图

    4、springmvc.xml解析逻辑视图,得到物理视图路径

    5、填写表单数据并提交数据

     

    6、web.xml拦截,交给springmvc.xml去处理,springmvc.xml通过匹配,找到相应的类

     

    7、类处理表单数据,并返回一个逻辑视图

    8、springmvc.xml解析逻辑视图,得到物理视图路径

    9、把数据返回给用户


  • 相关阅读:
    力扣leetcode 435. 无重叠区间
    C++中的快读和快写
    python安装wordcloud库报错
    python习题 随机密码生成 + 连续质数计算
    python 四位玫瑰数 + 100以内素数求和
    解决git add README.md 时报错 fatal: pathspec 'README.md' did not match any files
    洛谷P3817 小A的糖果 贪心思想
    多机部署之session共享解决方案-copy
    一点区块链资料-copy
    kafka集群搭建及结合springboot使用-copy
  • 原文地址:https://www.cnblogs.com/xiaostudy/p/9594545.html
Copyright © 2011-2022 走看看