zoukankan      html  css  js  c++  java
  • 笔记17 接受表单数据

    场景描述:

        用户提交产品名称和价格到Spring MVC Spring MVC接受数据并显示

    1.实体类Product.java

     1 package pojo;
     2 
     3 public class Product {
     4     private int id;
     5     private String name;
     6     private float price;
     7 
     8     public int getId() {
     9         return id;
    10     }
    11 
    12     public void setId(int id) {
    13         this.id = id;
    14     }
    15 
    16     public String getName() {
    17         return name;
    18     }
    19 
    20     public void setName(String name) {
    21         this.name = name;
    22     }
    23 
    24     public float getPrice() {
    25         return price;
    26     }
    27 
    28     public void setPrice(float price) {
    29         this.price = price;
    30     }
    31 }

    2.增加商品的页面addProduct.jsp 

      在web目录下 (不是在WEB-INF下)增加商品的页面addProduct.jsp

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     
    12     <title>My JSP 'addProduct.jsp' starting page</title>
    13     
    14     <meta http-equiv="pragma" content="no-cache">
    15     <meta http-equiv="cache-control" content="no-cache">
    16     <meta http-equiv="expires" content="0">    
    17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    18     <meta http-equiv="description" content="This is my page">
    19     <!--
    20     <link rel="stylesheet" type="text/css" href="styles.css">
    21     -->
    22 
    23   </head>
    24   
    25   <body>
    26     <h1 align="center">增加商品</h1>
    27     <form action="addProduct">
    28         产品名称:<input type="text" name="name" vlaue=""><br>
    29         产品价格:<input type="text" name="price" vlaue=""><br>
    30         <input type="submit" value="增加商品">
    31     </form>
    32   </body>
    33 </html>

    3.控制器类ProductController

    控制器ProductController,准备一个add方法映射/addProduct路径

    为add方法准备一个Product 参数,用于接收注入

    最后跳转到showProduct页面显示用户提交的数据

    注: addProduct.jsp 提交的name和price会自动注入到参数 product里
    注: 参数product会默认被当做值加入到ModelAndView 中,相当于:

    mav.addObject("product",product);

     1 package pojo;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 import org.springframework.web.servlet.ModelAndView;
     6 
     7 @Controller
     8 public class ProductController {
     9 
    10     @RequestMapping("/addProduct")
    11     public ModelAndView add(Product product) throws Exception {
    12         ModelAndView mav = new ModelAndView("showProduct");
    13         return mav;
    14     }
    15 
    16 }

    4.显示商品的界面showProduct.jsp

    WEB-INF/page 目录下创建 showProduct.jsp 
    用 EL 表达式显示用户提交的名称和价格

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     
    12     <title>My JSP 'showProduct.jsp' starting page</title>
    13     
    14     <meta http-equiv="pragma" content="no-cache">
    15     <meta http-equiv="cache-control" content="no-cache">
    16     <meta http-equiv="expires" content="0">    
    17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    18     <meta http-equiv="description" content="This is my page">
    19     <!--
    20     <link rel="stylesheet" type="text/css" href="styles.css">
    21     -->
    22 
    23   </head>
    24   
    25   <body>
    26     <h1 align="center">商品信息</h1>
    27     产品名称:${product.name}<br>
    28     产品价格:${product.price}
    29   </body>
    30 </html>

    5.测试

    目录结构:

      

  • 相关阅读:
    [公链观点] BTC 1.0, ETH 2.0, EOS 3.0, Dapp, WASM, DOT, ADA, VNT
    [FAQ] chrome.runtime.onMessage 问题, Unchecked runtime.lastError: The message port closed before a response was received
    [FAQ] Composer, Content-Length mismatch
    [PHP] Laravel 依赖注入使用不当引起的内存溢出
    [PHP] 浅谈 Laravel auth:api 不同驱动 token 和 passport 的区别
    [PHP] 自定义 laravel/passport 的误区讲解
    [Tools] Kali Linux 高清屏扩大系统字体、BurpSuite、OpenVAS
    [NoSQL] 从模型关系看 Mongodb 的选择理由
    [quacker] Browser Extension to Clean Website ADs in Quasar BEX
    [FE] Quasar BEX 预览版指南
  • 原文地址:https://www.cnblogs.com/lyj-gyq/p/8909714.html
Copyright © 2011-2022 走看看