【day6】【错误日志】获取form表单传递的值给Controller (Controller无法无法获取前端form表单传过来的值,maven项目)

导读:本篇文章讲解 【day6】【错误日志】获取form表单传递的值给Controller (Controller无法无法获取前端form表单传过来的值,maven项目),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言

先来看看怎么写的
首先这个是maven的web工程:
如何创建一个maven的web工程,在实训日志4里面也提到过

Controller中内容

首先是Controller中的内容(全部代码):

package com.itheima.controller;

import com.itheima.dao.UserMapper;
import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.Collection;
import java.util.List;
import java.util.Map;

//@RestController    默认返回json数据格式
@Controller
public class UserController {

    @Autowired
    UserMapper userMapper;
    //自动注入一个实例

//    @GetMapping("/addOneInfo")
    @RequestMapping("/addOneInfoRequest")
//    @ResponseBody
    public String AddOne(@RequestParam("username") String un,@RequestParam("password") String pw,
                         @RequestParam("salt") String st,@RequestParam("sex") int sex){
        System.out.println("成功进入addOne");

        System.out.println("四个变量的值:"+un+pw+st+sex);
        User user = new User();
        user.setUserName(un);
        user.setPassword(pw);
        user.setSalt(st);
        user.setSex(sex);
        System.out.println("user信息:"+user);
        int add = userMapper.addOne(user);
        System.out.println(add+"\t"+user);
        System.out.println("添加信息完成");
//        getAlluser(new Model(null) );    //调用函数返回
//        若是没有加@ResponseBody的注解  那么它返回时thymeleaf报错  说是找不到  加上@ResponseBody  后  会装换为json格式
        return "userindex";
    }
}

你只需要注意这儿的信息:
Controller中的信息
检查@RequestParam

html内容:

然后html 页面中的内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>增加个人信息</title>
  <style>
    #infoBox{
      margin: auto;
      text-align: left;
      width:60%;
    }
  </style>
</head>
<body>
<div id="infoBox">
  <form action="/addOneInfoRequest" method="get">
用户名:
<input name="username" id="username" type="text">
  <br>
  密码:
<input name="password" id="password" type="text">
  <br>
  salt:
<select name="salt" id="salt">
  <!--    value中的值是form表单传的值  option标签之间的值是页面显示的值  -->
  <option value="salt1" selected="selected">salt1</option>
  <option value="salt2">salt2</option>
  <option value="salt3">salt3</option>

</select>
  <br>
  sex:
  <select name="sex" id="sex">
    <!--    value中的值是form表单传的值  option标签之间的值是页面显示的值  -->
    <option value="1" selected="selected">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
  <br>
  <input type="submit" id="submitBotton" value="提交">
  </form>
</div>
</body>
</html>

注意上面的form表单的中 一定要有一个提交按钮:
也就是这个的type一定要为submit:
提交按钮

运行出来的页面是这样的:
页面
我在两个框中输入了2233
点击提交后(地址栏变化,刚刚form表单中的内容):
地址栏的变化
Controller也接收到了数据并打印出来了数据:
控制台打印数据

有关@RequestParam注解和@Param的注解,我之前因为通过url传递值过来时,然而使用的是@param注解 所以只有int类型数据,变量获取到了,但是String类型的数据没有获取到

关于@RequestParam、@Param、@PathVariable三个注解接收数据的方法(下面这个链接可以参考):
https://www.cnblogs.com/helloworld6379/p/9501943.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114571.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!