首页 > 代码库 > Struts2 接收多表关联的数据

Struts2 接收多表关联的数据

今天在做一个计费移动的时候,使用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;
	}
	
	

再一次启动服务器,就可以接受到多个表提交上来的数据了!!!试一试吧!!