struts2模型驱动提交,对象里有别的对象的数组引用,无法装填

xiaonan830203 2010-09-19 09:43:37
/**
* Action
*/
public class UserCreateAction extends CRUDActionSupport<UserVO>{

private String id;
private UserVO userVO;

private String errorMessage;
/**
*
*/
private static final long serialVersionUID = 1L;
private IUserView userView = (IUserView) getBean(IUserView.class);
public String execute(){
try {
userView.addUserInfo(userVO);
} catch (Exception e) {
e.printStackTrace();
errorMessage = e.getMessage();
}
return SUCCESS;
}

public UserVO getModel() {
return userVO;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

@Override
protected void prepareModel() throws Exception {
if (id != null && !"".equals(id)) {
Map<Object, Object> userInfo = userView.getUserInfo(id);
UserVO[] uservos = (UserVO[]) userInfo.get("userVO");
if(uservos != null && uservos.length != 0){
userVO = uservos[0];
}
} else {
userVO = new UserVO();
}
}

public String getErrorMessage() {
return errorMessage;
}

public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}

}


public class UserVO extends AbsVO {

private static final long serialVersionUID = 1L;

private DomainVO[] domain = null;

private String[] domainId;

public DomainVO[] getDomain() {
return domain;
}

public void setDomain(DomainVO[] domain) {
this.domain = domain;
}

public String[] getDomainId() {
return domainId;
}

public void setDomainId(String[] domainId) {
this.domainId = domainId;
}

}

现在是页面提交的话String[] domainId这个属性可以装填,但是DomainVO[] domain这个属性无法装填,请问大家知道又怎样解决么
...全文
293 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaonan830203 2010-09-19
  • 打赏
  • 举报
回复
package com.mocha.bsm.organization.vo;

public class DomainVO extends AbsVO {

/**
*
*/
private static final long serialVersionUID = 1L;

public DomainVO() {
super();
}

private String domainId;
public String getDomainId() {
return domainId;
}

public void setDomainId(String domainId) {
this.domainId = domainId;
}
}
xiaonan830203 2010-09-19
  • 打赏
  • 举报
回复
这里没有在jsp里设置DomainVO的传入,我是在js里动态添加入的一些input,input的名字为domain[i].domainId,i是变量。然后提交的,我理解为应该对应DomainVO[] domain这个
sdlbj 2010-09-19
  • 打赏
  • 举报
回复
你的jsp页面怎么写的表单,贴上来看看
xiaonan830203 2010-09-19
  • 打赏
  • 举报
回复
是不是有别的方式我不清楚,还请大家帮忙看看
xiaonan830203 2010-09-19
  • 打赏
  • 举报
回复
怎么调试,我试了是struts2无法装填该对象,可String[]这样的就可以
sdlbj 2010-09-19
  • 打赏
  • 举报
回复
自己调试一下吧
havcheung 2010-09-19
  • 打赏
  • 举报
回复
突然发现 前台传入到后台都是 是以字符串形式 传入的,所以后台的到的是字符串,而你DomainVO是一个自定义对象 一般来时是不能自动填装的 ,你需要在后台得到数据之后,将数据转化为DomainVO对象 再 set进去。

不过 貌似有一种方法可以解决,那就是用json对象,不过json 我也是刚开始学..
havcheung 2010-09-19
  • 打赏
  • 举报
回复
你把UserV0里面的 private DomainVO[] domain = null; 改成private DomainVO[] domain = new DomainVO[100];尝试一下 你这种情况我也没遇见过。
xiaonan830203 2010-09-19
  • 打赏
  • 举报
回复
我的action里是用UserVO对象接数据,然后UserVO里又有DomainVO[]这个,这种情况样像你说的传入对象数组可以组装,成立么
havcheung 2010-09-19
  • 打赏
  • 举报
回复
如果你传入的是DomainVO的对象数组 那么应该可以组装的
xiaonan830203 2010-09-19
  • 打赏
  • 举报
回复
这个是可以组装成功的,我说的是UserVO里的DomainVO[] domain组装不成功,你是说要改成private DomainVO[] domain = new DomainVO[100];是这样么
havcheung 2010-09-19
  • 打赏
  • 举报
回复
尝试一下 把 private String[] domainId;
改成 private String[] domainId = new String[100];
xiaonan830203 2010-09-19
  • 打赏
  • 举报
回复
没有人试过么?

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧