文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringMVC获取表单数据的方法

2023-06-20 13:35

关注

本篇内容介绍了“SpringMVC获取表单数据的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

SpringMVC获取表单数据

1、实体类

package cn.hadron.bean;import java.io.Serializable;import java.util.Arrays;// 域对象,实现序列化接口public class UserBean implements Serializable {    private Integer id;    private String username;    private String password;    private String birthday;    private Integer age;    //测试单选按钮    private String sex;    //测试复选按钮    private String[] favorite;    public UserBean() {}    public UserBean(String username, String password,int age) {        this.username = username;        this.password = password;        this.age=age;    }    public UserBean(String username, String birthday,String sex) {        this.username = username;        this.birthday = birthday;        this.sex=sex;    }    public Integer getId() {        return id;    }    public String getUsername() {        return username;    }    public String getPassword() {        return password;    }    public Integer getAge() {        return age;    }    public void setId(Integer id) {        this.id = id;    }    public void setUsername(String username) {        this.username = username;    }    public void setPassword(String password) {        this.password = password;    }    public void setAge(Integer age) {        this.age = age;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public String[] getFavorite() {        return favorite;    }    public void setFavorite(String[] favorite) {        this.favorite = favorite;    }    public String getBirthday() {        return birthday;    }    public void setBirthday(String birthday) {        this.birthday = birthday;    }    @Override    public String toString() {        return "UserBean{" +                "id=" + id +                ", username='" + username + '\'' +                ", password='" + password + '\'' +                ", birthday='" + birthday + '\'' +                ", age=" + age +                ", sex='" + sex + '\'' +                ", favorite=" + Arrays.toString(favorite) +                '}';    }}

2、控制器

package cn.hadron.controller;import cn.hadron.bean.UserBean;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import java.util.ArrayList;import java.util.List;@Controller@RequestMapping(value = "/f")public class FormController {    @RequestMapping(value="/getEditPage",method= RequestMethod.GET)    public String getEditPage(Model model) {        System.out.println("表单测试");        UserBean user = new UserBean("jack","1997-7-1","女");        // model中添加属性user,值是user对象        model.addAttribute("user",user);        //返回Edit.jsp页面        return "edit";    }    @RequestMapping(value="/edit",method=RequestMethod.POST)    public String edit(@ModelAttribute UserBean user,Model model) {        System.out.println("获取表单数据:");        //@ModelAttribute注解指示了参数应该从模型(这里所说的“模型”指 Model)中获取        model.addAttribute("username", user.getUsername());        model.addAttribute("birthday", user.getBirthday());        model.addAttribute("sex", user.getSex());        model.addAttribute("favorite", user.getFavorite());        System.out.println("user="+user);        //返回userPage.jsp页面        return "userPage";    }        @ModelAttribute("webList")    public List<String> getWebList() {        List<String> webList = new ArrayList<String>();        webList.add("SpringMVC");        webList.add("SpringBoot");        webList.add("SpringCloud");        return webList;    }}

3、页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %><!DOCTYPE html><html><head><meta charset="UTF-8"><title>测试form标签</title></head><body><h4>用户信息编辑页面</h4><form:form modelAttribute="user" method="post" action="/elastic/f/edit.do" >    <table>        <tr>            <td>姓名:</td>            <td><form:input path="username"/></td>        </tr>        <tr>            <td>性别:</td>            <td>                <form:radiobutton path="sex" value="男" label="男" />                <form:radiobutton path="sex" value="女" label="女" />            </td>        </tr>        <tr>            <td>生日:</td>            <td><form:input path="birthday"/></td>        </tr>        <tr>            <td>爱好:</td>            <td><form:checkboxes items="${webList}" path="favorite" /></td>        </tr>        <tr>            <td colspan="2">                <input type="submit" value="提交变更"/>            </td>        </tr>    </table></form:form></body></html>

SpringMVC获取表单数据的方法

<%--  Created by IntelliJ IDEA.  User: chengyq  Date: 2018/9/3  Time: 14:27  To change this template use File | Settings | File Templates.--%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%><html><head>    <title>Title</title></head><body><h3>您提交的用户信息</h3><table>    <tr>        <td>Username</td>        <td>${username}</td>    </tr>    <tr>        <td>Birthday</td>        <td>${birthday}</td>    </tr>    <tr>        <td>Sex</td>        <td>${sex}</td>    </tr>    <tr>        <td>favorite</td>        <td>            <%                String[] favorite = (String[])request.getAttribute("favorite");                for(String f: favorite) {                    out.println(f);                }            %>        </td>    </tr></table></body></html>

SpringMVC获取表单数据的方法

SpringMVC获取表单参数

以下几种方式只有在已搭好的SpringMVC环境中,才能执行成功!

一、首先,写一个登陆页面和一个Bean类

登陆页面

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%> <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>yyx博客后台登录</title></head><body>    <form action="${pageContext.request.contextPath}/user/login.do"        method="post">        <table>            <tr>                <td>用户名:</td>                <td><input type="text"  name="userName"></td>            </tr>            <tr>                <td>密码:</td>                <td><input type="password"  name="userPwd"></td>            </tr>            <tr>                <td colspan="2"><input type="submit" value="登陆"></td>            </tr>        </table>    </form></body></html>

java实体类

package com.yyx.model; public class User{    private String userName;    private String userPwd;     public String getUserName() {        return userName;    }     public void setUserName(String userName) {        this.userName = userName;    }     public String getUserPwd() {        return userPwd;    }     public void setUserPwd(String userPwd) {        this.userPwd = userPwd;    }}

二、获取表单数据的方法

1、直接把表单的参数写在Controller相应的方法的形参中

注意:控制器中方法的形参String userName,String userPwd名称必须和登陆页面的name="userName",name="userPwd"相同

package com.yyx.controller; import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping; @Controller@RequestMapping("/user")public class UserController {    @RequestMapping("/login")    public String loginByUser(String userName, String userPwd) {        System.out.println("userName is:" + userName);        System.out.println("userPwd is:" + userPwd);        return "success";    }}

2.通过HttpServletRequest接收

控制器中

String userName=request.getParameter("userName");String userPwd=request.getParameter("userPwd");

的参数名称必须和登陆页面的name="userName",name="userPwd"相同

package com.yyx.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping; @Controller@RequestMapping("/user")public class UserController {    @RequestMapping("/login")    public String loginByUser(HttpServletRequest request) {        String userName=request.getParameter("userName");        String userPwd=request.getParameter("userPwd");        System.out.println("userName is:" + userName);        System.out.println("userPwd is:" + userPwd);        return "success";    }}

3.通过一个bean来接收

登陆页面的name="userName",name="userPwd"必须和Bean类的属性名称相同

package com.yyx.controller; import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping; import com.yyx.model.User; @Controller@RequestMapping("/user")public class UserController {    @RequestMapping("/login")    public String loginByUser(User user) {        System.out.println("userName is:" + user.getUserName());        System.out.println("userPwd is:" + user.getUserPwd());        return "success";    }}

4.利用js中ajax请求通过json数据接收

在页面中添加js代码

<script type="text/javascript"    src="${pageContext.request.contextPath}/static/jquery-3.1.1.min.js"></script>  <script type="text/javascript">    $(document).ready(function() {        $("#button_submit").click(function() {            var name = $("#userName").val();            var pwd = $("#userPwd").val();            var user = {                userName : name,                userPwd : pwd            };//拼装成json格式            $.ajax({                type : "POST",                url : "${pageContext.request.contextPath}/user/login.do",                data : user,                success : function(data) {                    alert("成功");                },                error : function(e) {                    alert("出错:" + e);                }            });        });    });</script>

控制器中的代码和方法3中的相同。

“SpringMVC获取表单数据的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯