每一行都是一个dto对象,指定相同的name就可以了。
protected List getBeanListForRequest(HttpServletRequest request,
Class beanClass) {
// 数据条数
int rowCount = 0;
List beanList = new java.util.ArrayList();
// 根据bean中的属性从reqeust获取字段列表
Field[] fields = getFieldsFromClass(beanClass);
// 存放所有的字段的name\value
Vector fieldVector = new Vector();
for (int i = 0; i < fields.length; i++) {
// 字段的name\value
Vector field = new Vector();
String[] valueList = request.getParameterValues(fields[i].getName());
if (valueList == null) {
continue;
}
// 如果数据条数未设置,则设置之
if (rowCount == 0)
rowCount = valueList.length;
field.add(fields[i].getName());
field.add(valueList);
fieldVector.add(field);
}
// 创建对象列表
for (int j = 0; j < rowCount; j++) {
try {
beanList.add(beanClass.newInstance());
}
catch (InstantiationException e) {
log.error(e.getMessage(), e);
}
catch (IllegalAccessException e) {
log.error(e.getMessage(), e);
}
}
// 给对象的字段设置值
for (int i = 0; i < fieldVector.size(); i++) {
Vector field = (Vector) fieldVector.elementAt(i);
String fieldName = (String) field.elementAt(0);
String[] fieldValue = (String[]) field.elementAt(1);
if (fieldValue == null) {
continue;
}
for (int j = 0; j < fieldValue.length; j++) {
try {
if (j >= beanList.size()) {
break;
}
BeanUtils.setProperty(beanList.get(j),
fieldName,
fieldValue[j]);
}
catch (IllegalAccessException e) {
log.error(e.getMessage(), e);
}
catch (InvocationTargetException e) {
log.error(e.getMessage(), e);
}
}
}
return beanList;
}
没太明白?你指是实体是什么?如果是页面数据的话,struts1 是通过actionForm封装页面数据传递给action的
如果数据少的话,可以试试在跳转路径上,添加传递参数!另外问下,在后台的action,你的set,get方法,写了嘛?