今天在做一个计费移动的时候,使用Struts2 的modelDriver 接收User提交的数据,在User 中关联着用户详细信息表、电话信息表、套餐信息表和管理员信息表;提交上来的数据有电话号码、用户详细地址和个人信息、套餐的名称、套餐的类型等等、、、
@Entity public class User { private int id; private String userName; private String password; private String type; private String status; private int counter; private Date radate; private Customer customerId;//用户详细信息 private Phone phoneId;//电话信息 private Pack packId;//套餐详细信息 private Manager managerId;//哪一个管理员录入的 private int currentPhone; private int currentMassage; private int currentData;
使用User Model 来接收数据时,一直是接收不到数据;网上查了好多编文章,还是找不到解决方案;如果这时使用属性来接收数据的话,整个UserAction 控制器里面的代码多得无法直视了。
顿时、我就想到了使用数据传输对象DTO类(data transport object)也有的人叫成pojo,不管什么叫;意思就是建立一个简单的javaBean ,这个不干别的事就是用来传输数据的;
为User建立一个 UserAddDTO类 , 把需要数据的属性写进去(注:属性名和属性类型必须一致),并且生成Setter/Getter 方法
public class UserAddDTO { private String userName; private String password; private String type; private String realName; private String mobilePhone; private String packName; private String status; private String customerId;//<span style="color:#ff0000;">注意别使用int类型,不然同样接收不到数据</span> private String counter; private String phoneId; private String packId; private String managerId;
最后在UserAction 中 new 中 一个对象出来并且生成Setter/Getter 方法
private UserAddDTO addDTO = new UserAddDTO();
public UserAddDTO getAddDTO() { return addDTO; } public void setAddDTO(UserAddDTO addDTO) { this.addDTO = addDTO; }
再一次启动服务器,就可以接受到多个表提交上来的数据了!!!试一试吧!!
Struts2 接收多表关联的数据
时间: 2024-11-08 19:47:48