struts2 嵌套list属性的显示与form提交

来源:互联网 发布:鹿晗颜值如何 知乎 编辑:程序博客网 时间:2024/06/15 20:31

action中有如下List属性,需要能显示到jsp页面并通过页面修改值提交form到action:


private List<Section> sectionsList;

Section类如下,其中Section中又包括一个Field的List

public class Section implements Serializable {private static final long serialVersionUID = 3952189513312630860L;private String name;private String nameTranslate;private List<Field> fields;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getNameTranslate() {return nameTranslate;}public void setNameTranslate(String nameTranslate) {this.nameTranslate = nameTranslate;}public List<Field> getFields() {return fields;}public void setFields(List<Field> fields) {this.fields = fields;}}

Field类如下:

public class Field implements Serializable {private static final long serialVersionUID = 3952189513312630860L;private String code;private String label;private String labelTranslate;private String defaultValue;private String overrideValue;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getLabel() {return label;}public void setLabel(String label) {this.label = label;}public String getLabelTranslate() {return labelTranslate;}public void setLabelTranslate(String labelTranslate) {this.labelTranslate = labelTranslate;}public String getDefaultValue() {return defaultValue;}public void setDefaultValue(String defaultValue) {this.defaultValue = defaultValue;}public String getOverrideValue() {return overrideValue;}public void setOverrideValue(String overrideValue) {this.overrideValue = overrideValue;}}

JSP页面如下些,则可将action中的sectionsList与form关联:

<%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Test</title></head><body><h2>Test List of List</h2><s:form action="saveTest" method="post"><s:iterator value="sectionsList" status="stat"><table border='1' width='50%'  cellspacing='0' cellpadding='0'><tr><td><s:property value="%{name}"/></td><td colspan="2"><s:textfield name="sectionsList[%{#stat.index}].nameTranslate" value="%{nameTranslate}" label="nameTranslate" /></td></tr><tr><td>code</td><td>labelTranslate</td><td>overrideValue</td></tr><s:iterator value="fields" status="statField"><tr><td><s:property value="%{code}"/></td><td><s:textfield name="sectionsList[%{#stat.index}].fields[%{#statField.index}].labelTranslate" value="%{labelTranslate}" label="labelTranslate" /></td><td><s:textfield name="sectionsList[%{#stat.index}].fields[%{#statField.index}].overrideValue" value="%{overrideValue}" label="overrideValue" /></td></tr></s:iterator></table></s:iterator><s:submit value="save" /></s:form></body></html>


原创粉丝点击