关于dto和页面信息的传递

关于dto和页面信息的传递

  1. 不是很懂dto的作用,为什么需要它来获取报销单对象和报销详情集合?

  2. 在控制器的toAdd方法中用Map传递给jsp一个实例化的dto,这有什么作用?不是很明白视频中说的是一个视图;

  3. 关于数据传递,实例化的dto是如何封装数据并返回给控制器的add方法?我的想法是dto对象是new出来的,它的成员变量怎么会有页面上填写的值呢?dto对象的setter方法有用被调用到吗,什么时候调用的?不是很理解其中的过程。

// dto
public class ClaimVoucherInfo {
    private ClaimVoucher claimVoucher;
    private List<ClaimVoucherItem>items;

    public ClaimVoucher getClaimVoucher() {
        return claimVoucher;
    }

    public void setClaimVoucher(ClaimVoucher claimVoucher) {
        this.claimVoucher = claimVoucher;
    }

    public List<ClaimVoucherItem> getItems() {
        return items;
    }

    public void setItems(List<ClaimVoucherItem> items) {
        this.items = items;
    }
}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,关于同学的问题:

1、关于报销单,需要有报销单的基本信息,比如创建人,待处理人,状态等,还要有具体信息,比如报销的是交通还是住宿,费用是多少等等。没有一个具体的实体类来描述报销单,所以这里创建了dto包下的ClaimVoucherInfo类,用来描述具体的报销单信息。

在ClaimVoucherInfo类中,

claimVoucher用来描述报销单的基本信息。

items用来描述具体信息,报销单中可能存在多个条目信息,所以使用List集合。

http://img1.sycdn.imooc.com//climg/5e1691dc09bd6c8906510401.jpg

2、在claim_voucher_add.jsp页面中,使用的是springMVC的form表单,所以在toAdd()方法中,需要传递给页面一个modelAttribute,也就是实例dto,这样在claim_voucher_add.jsp页面中,modelAttribute可以解析这个实例dto。添加报销单后,将其封装为一个dto实例传递到add()方法中。如:

http://img1.sycdn.imooc.com//climg/5e1693b6090c59db07960369.jpg

http://img1.sycdn.imooc.com//climg/5e1693c4092d8d2f10740106.jpg

另外问一下同学说的视图是在哪里出现的。

3、这是SpringMVC的form表单完成的,在toAdd()方法中传递给页面一个modelAttribute,在页面中modelAttribute解析该实例,并根据path将属性设置到表单中,如:

http://img1.sycdn.imooc.com//climg/5e169509095f804413310790.jpg

添加数据后,根据添加的属性值具体封装成一个dto实例传递给add()方法。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师