前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >getParameterMap()返回参数需要对应实体类类型,否则收不到----打卡

getParameterMap()返回参数需要对应实体类类型,否则收不到----打卡

作者头像
发布2020-10-23 10:39:42
9990
发布2020-10-23 10:39:42
举报
文章被收录于专栏:后端JavaEE后端JavaEE

1.在jsp页面传到controller许多参数,使用getParameterMap()获得

1.1register.jsp页面

代码语言:javascript
复制
<%--
  Created by IntelliJ IDEA.
  User: 49841
  Date: 2020/9/18
  Time: 11:49
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册页面</title>
</head>
<body>
    <form method="post" action="usersController?method=register">
        <input type="text" name="uname" placeholder="请输入你的用户名"/>
        <input type="text" name="upassword" placeholder="请输入你的密码"/>
        <input type="text" name="uemail" placeholder="请输入你的邮箱"/>
        <input type="text" name="usex" placeholder="请输入你的性别"/>
        <input type="submit" value="提交"/>
    </form>
<%--    <span style="color:red">${msg}</span>--%>
</body>
</html>

1.2.controller(Servlet),因为后面还写了BaseController,方法就没写在doget、dopost里面

代码语言:javascript
复制
//注册
    public String register(HttpServletRequest request, HttpServletResponse response) throws Exception{
        User user = new User();
        //得到参数并封装到user,并为其中为null的属性赋值
        BeanUtils.populate(user, request.getParameterMap());

        user.setUstatus(SysConstant.NOT_ACTIVE);//激活状态为0
        user.setUcode(ActiveCodeUtils.getActiveCode());
        user.setUrole(SysConstant.CUSTOMER);
        //添加进数据库-->邮箱-->(emailActivate)点击激活
        int i = userService.register(user);
        request.setAttribute("url",userService.getUrl());

        //已经激活的状态
        if(i>0){
            //注册成功
            return SysConstant.FORWARD+SysConstant.FLAG+"registerSuccess.jsp";
        }else{
            //注册失败
            request.setAttribute("registerMsg", "注册失败");
            return SysConstant.FORWARD+SysConstant.FLAG+"register.jsp";
        }
    }

1.3User实体类

代码语言:javascript
复制
public class User {
    private int uid;
    private String uname;
    private String upassword;
    private String uemail;
    private String usex;
    private int ustatus;
    private String ucode;
    private int urole;

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", uname='" + uname + '\'' +
                ", upassword='" + upassword + '\'' +
                ", uemail='" + uemail + '\'' +
                ", usex='" + usex + '\'' +
                ", ustatus=" + ustatus +
                ", ucode='" + ucode + '\'' +
                ", urole=" + urole +
                '}';
    }

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpassword() {
        return upassword;
    }

    public void setUpassword(String upassword) {
        this.upassword = upassword;
    }

    public String getUemail() {
        return uemail;
    }

    public void setUemail(String uemail) {
        this.uemail = uemail;
    }

    public String getUsex() {
        return usex;
    }

    public void setUsex(String usex) {
        this.usex = usex;
    }

    public int getUstatus() {
        return ustatus;
    }

    public void setUstatus(int ustatus) {
        this.ustatus = ustatus;
    }

    public String getUcode() {
        return ucode;
    }

    public void setUcode(String ucode) {
        this.ucode = ucode;
    }

    public int getUrole() {
        return urole;
    }

    public void setUrole(int urole) {
        this.urole = urole;
    }
}

2.说明:

&nbus之前图方便,使用getParameterMap()加 BeanUtils.populate(),得到参数就直接封装到user对象里面了,没有使用request.setAttribute(),一个名一个值的这样一个个参数的获取,再new user放进去。
所有采坑了,因为jsp页面input标签里面名称和实体类定义的属性名不一样,所以获取不到值,最后得到了一个空的user对象。呱~
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.在jsp页面传到controller许多参数,使用getParameterMap()获得
    • 1.1register.jsp页面
      • 1.2.controller(Servlet),因为后面还写了BaseController,方法就没写在doget、dopost里面
        • 1.3User实体类
        • 2.说明:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档