java - Spring MVC - 在包含多个层次结构的对象中显示和跟踪用户选择

标签 java jsp spring-mvc

我需要帮助以了解使用 Spring MVC 的特定场景的正确方法 -

从服务中我得到一个 Collection 类型。现在,每个类别都有 ID、名称、描述等字段,以及该类别可用的集合。

现在我必须显示一个用户注册表单,除了用户字段(如姓名、电子邮件等)之外,还需要显示这些不同的类别数据。用户可以选择类别以及从该类别列出的产品中选择产品。因此,我需要针对类别名称显示一个复选框,然后显示一个用于显示产品的组合框。

如何在传递给 JSP 的命令对象中捕获此内容。我创建了一个命令作为 UserForm,其中除了用户字段之外,我还有一个 Collection。我可以在 JSP 中迭代它,但是如何捕获该类别的用户选择以及为该类别选择的产品? 我是否需要在表单中保留单独的字段来捕获用户选择(例如 int[]categoryId 和 int[]productId),或者有什么方法可以做到这一点?

请提出您的建议。

谢谢!

最佳答案

您可以在 Spring MVC 中提交多个对象层次结构。

假设你有这样的东西:

public class UserForm {
    private List<Category> categories;
    ...
}

public class Category {
    private List<Product> products;
    private String name;
    ...
}

public class Product {
    private String name;
}

要提交第一个类别名称,您可以执行以下操作:

<form:input path="categories[0].name" />

要提交第一个产品名称,您可以执行以下操作:

<form:input path="categories[0].products[0].name" />

要提交多个类别/产品,请将 0 替换为您在服务器端 (JSP) 或 Javascript 端设置的索引。在 JSP 上设置索引的示例:

<form:input path="categories[${someIndex}].name" />

关于java - Spring MVC - 在包含多个层次结构的对象中显示和跟踪用户选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12852422/

相关文章:

java - 如何提高pdf中嵌入的签名图像的质量

java - 使用项目名称访问主页

java - hibernate 加载时间很长(我认为 hibernate 加载所有项目)

spring-mvc - Spring MVC 还是 Wicket?

java:从文件或字符串获取行的接口(interface)?

java - ApacheCayenne 类的架构生成器

java - 您如何在Java中定义构造函数?

java - 使用javascript将请求参数发送到位于JSP中其他域的Servlet

java - jsp不合逻辑的错误

spring - 使用 BeanPostProcessor 将 RequestResponseBodyMethodProcessor 替换为 CustomMethodProcessor