随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。

承接上文

例如:

 

处理方法中有User和Role两个Bean类型参数,此时通过下面的方式赋值:

<%--
  Created by IntelliJ IDEA.
  User: CDU_LM
  Date: 2022/6/8
  Time: 17:11
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/user" method="post">
    <%--User--%>
    <h1>User赋值</h1>
    id:<input name="id" type="text"/><br/><br/>
    姓名:<input name="name" type="text"/><br/><br/>

    <%--数组--%>
    小名:<input name="alias" type="checkbox" value="狗蛋" checked/>狗蛋
    <input name="alias" type="checkbox" value="小黑" checked/>小黑<br/><br/>

    <%--List--%>
    爱好:<input name="habbies" type="checkbox" value="唱歌" checked/>唱歌
    <input name="habbies" type="checkbox" value="跳舞" checked/>跳舞<br/><br/>

    <%--Map--%>
    亲属:<input name="relatives['father']" type="checkbox" value="爸爸" checked/>
    <input name="relatives['mother']" type="checkbox" value="妈妈" checked/>妈妈<br/><br/>

    <%--其它Bean--%>
    角色:<input name="role.name" type="text"/><br/><br/>

    <%--List--%>
    朋友:<input name="friends[0].name" type="text" value="张三"/><br/><br/>
    <input name="friends[1].name" type="text" value="李四"/><br/><br/>

    <%--Role--%>
    <h1>Role赋值</h1>
    id:<input name="id" type="text"><br/><br/>
    姓名:<input name="name" type="text"/><br/><br/>
    
    <input type="submit" value="提交"/>
</form>
</body>
</html>

报错:

 

 所以,需要使用另一种方式进行赋值:

创建一个属性包含User和Role类的封装类:

package cn.cdulm.entity;

import java.util.Objects;

public class UserDTO {
    private User user;
    private Role role;

    @Override
    public String toString() {
        return "UserDTO{" +
                "user=" + user +
                ", role=" + role +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        UserDTO userDTO = (UserDTO) o;
        return Objects.equals(user, userDTO.user) && Objects.equals(role, userDTO.role);
    }

    @Override
    public int hashCode() {
        return Objects.hash(user, role);
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public Role getRole() {
        return role;
    }

    public void setRole(Role role) {
        this.role = role;
    }
}

 然后将处理方法中的参数改为封装类:

 然后将请求页面的参数改为:

<%--
  Created by IntelliJ IDEA.
  User: CDU_LM
  Date: 2022/6/8
  Time: 17:11
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/ud" method="post">
    <%--User--%>
    <h1>User赋值</h1>
    id:<input name="user.id" type="text"/><br/><br/>
    姓名:<input name="user.name" type="text"/><br/><br/>

    <%--数组--%>
    小名:<input name="user.alias" type="checkbox" value="狗蛋" checked/>狗蛋
    <input name="user.alias" type="checkbox" value="小黑" checked/>小黑<br/><br/>

    <%--List--%>
    爱好:<input name="user.habbies[0]" type="checkbox" value="唱歌" checked/>唱歌
    <input name="user.habbies[1]" type="checkbox" value="跳舞" checked/>跳舞<br/><br/>

    <%--Map--%>
    亲属:<input name="user.relatives['father']" type="checkbox" value="爸爸" checked/>
    <input name="user.relatives['mother']" type="checkbox" value="妈妈" checked/>妈妈<br/><br/>

    <%--其它Bean--%>
    角色:<input name="user.role.name" type="text"/><br/><br/>

    <%--List--%>
    朋友:<input name="user.friends[0].name" type="text" value="张三"/><br/><br/>
    <input name="user.friends[1].name" type="text" value="李四"/><br/><br/>

    <%--Role--%>
    <h1>Role赋值</h1>
    id:<input name="role.id" type="text"><br/><br/>
    姓名:<input name="role.name" type="text"/><br/><br/>

    <input type="submit" value="提交"/>
</form>
</body>
</html>

此时请求并输入参数:

 响应成功:

 

 

 输出结果:

UserDTO{user=User{id=1, name='蜘蛛侠', alias=[狗蛋, 小黑], habbies=[唱歌, 跳舞], relatives={father=爸爸, mother=妈妈}, role=Role{id=null, name='管理员'}, friends=[User{id=null, name='张三', alias=null, habbies=null, relatives=null, role=null, friends=null}, User{id=null, name='李四', alias=null, habbies=null, relatives=null, role=null, friends=null}]}, role=Role{id=101, name='钢铁侠'}}

 

发现Role类中的属性也赋值成功。

 

 

posted on 2022-06-09 09:50  时间完全不够用啊  阅读(275)  评论(0编辑  收藏  举报