SpringMVC五种数据提交方式的优化

1)数据提交,直接让参数名字和形参名字一样,可以直接把值赋给形参

package com.powernode.controller;

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

@Controller
public class OneAction {
    @RequestMapping("/one.action")
    //第一种数据提交,直接让参数名字和形参名字一样,可以直接把值赋给形参
    //自动注入,并且类型转换
    public String one(String myname ,int age){
        System.out.println("myname="+myname+",age="+age);
        return "main";
    }
}

2)对象封装提交数据

/**
     * 2对象封装提交数据
     * 在提交请求中,保证请求参数的名称与实体类中成员变量的名称一致,则可以自动创建对象,
     * 则可以自动提交数据,自动类型转换,自动封装数据到对象中.
     *
     * @param users
     * @return
     */
    @RequestMapping("/two.action")
    public String two(Users users) {
        System.out.println(users);
        return "main";
    }

3)动态占位符提交

@RequestMapping("/three/{name}/{age}.action")
    public String three(
            /**
             * 3)动态占位符提交
             * 仅限于超链接或地址拦提交数据.它是一杠一值,一杠一大括号,使用注解@PathVariable来解析.
             */
            @PathVariable("name")//注解,把超链接里面的数据按照不同的名字传进来
            String name,
            @PathVariable
            int age) {
        System.out.println("name=" + name + ",age=" + age);
        return "main";
    }

4)请求与形参中名字不对应的,可以使用

@RequestMapping("/four.action")
    public String four(
            /**
             * 请求与形参中名字不对应的,可以使用
             */
            @RequestParam("name")
            String myname,
            @RequestParam("age")
            int myage) {
        System.out.println("myname=" + myname + ",myage=" + myage);
        return "main";
    }

//five用request对象进行手工提取,跟JavaWeb一样,低能。

对应的前端请求页面代码

<%--
  Created by IntelliJ IDEA.
  User: 木木
  Date: 2023/9/3
  Time: 12:36
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>默认页面</title>
</head>
<body>
<br><br><br>
<h2>测试不同的请求提交方式</h2>
<form action="${pageContext.request.contextPath}/req.action" method="post">
    <input type="submit" value="提交">
</form>
<br>
<h2>1.单个数据提交</h2>
<form action="${pageContext.request.contextPath}/one.action">
    姓名:<input name="myname"><br>
    年龄:<input name="age"><br>
    <input type="submit" value="提交">
</form>
<h2>2.对象封装数据提交</h2>
<form action="${pageContext.request.contextPath}/two.action" method="post">
    姓名:<input name="name"><br>
    年龄:<input name="age"><br>
    <input type="submit" value="提交">
</form>
<h2>3.动态占位符提交</h2>
<a href="${pageContext.request.contextPath}/three/张三/22.action">动态提交</a>
<br><br>
<h2>4.参数名称不一致的数据提交</h2>
<form action="${pageContext.request.contextPath}/four.action" method="get">
    姓名:<input name="name"><br>
    年龄:<input name="age"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

你可能感兴趣的:(SpringMVC框架篇,spring,java,后端)