我什至不知道如何去问这个,但我会试着试一试。
我有一个我支持的现有应用程序,它由一组值的动态生成形式组成。表单被分成行和列的矩阵,JSP 使用这些信息来构造所需的表单:输入。为了构建表单,我有一些类似的 Java 类(主要是伪代码,以便您了解我在做什么):
class Form {
List<FormParts> parts;
}
class FormParts {
List<FormRow> rows;
List<FormHeader> headers;
}
class FormRow {
String name;
}
class FormHeader {
String name;
}
我使用这些类通过循环 FormParts 在 JSP 中动态构建表单,然后使用 FormRows 和 FormHeaders 构建表单:输入表,使用计数器来索引 FormResponse 中描述的结果答案列表:
class FormResponse {
List<FormAnswer> answers;
}
class FormAnswer {
int rowNumber;
int headerNumber;
String value;
}
我遇到的问题是List<FormAnswer> answers
. 因为它是一个列表,所以我必须存储所有答案,甚至是空答案(null),以便能够提供从数据库重新加载 FormResponses 的能力。这会在我的表中创建大量垃圾行,并使应用程序变慢。然而,当我大约 4 个月前第一次写这篇文章时,我记得我挣扎了一段时间试图弄清楚如何让 Spring MVC 绑定到 Map 的 Map,这将是实现这一点的更好方法,因为我可以简单地跳过我不需要的答案。我记得问题是,在 Spring MVC 内部,那些 Lists 和 Maps 变成了 LazyList 和 LazyMap。
有没有人对此有另一种可能的解决方案?