gpt4 book ai didi

java - 嵌套 bean 的 Spring 表单标签

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:53 25 4
gpt4 key购买 nike

我有两个类,如下所示,

public class CheckInBean implements Serializable{

private String user;
private Date checkInDate;
private List<ItemBean> items;


..followed by getters and setters

public class ItemBean implements Serializable{

private static final long serialVersionUID = 1L;

private int itemId;
private String barcode;
private String description;
private int minimalCount;
private int initialCount;
private int actualCount;
private String location;

... followed by getters and setters

我有一个使用 spring 表单标签的 jsp 页面。

我需要为列表输入日期和多个 ItemBean 值(同一页面上有多个)。我不知道如何做到这一点,我刚刚在 stackoverflow 中的某个地方读到使用 Propertyeditor ,但我不确定它是否适合我的要求。请提出建议。

我正在使用 Spring 3。

谢谢

最佳答案

好吧,如果您提交包含一个或多个 ItemBean 数据的表单,Spring MVC 将尝试将这些值映射到现有的 ItemBean 实体。如果 CheckInBean 实例中的 ItemBean 列表为 null/空,Spring MVC 将抛出错误。您可以采取多种措施来防止这种情况发生:

  • 创建您自己的 java.util.List 实现(例如,您可以重写 ArrayList)并更改 get(intposition) 方法,以便当针对某个位置调用该方法并且通常该位置将返回 null 时,您首先创建一个新实例,将其放置在( super )List 中的该位置,然后返回它。这是一种 hack,但如果您可以拥有较大间隔的 ItemBean 实例(例如您可能需要 3 个或可能需要 400 个),那么它会很好,因为它只会创建所需的实例,而不会过度污染内存。

  • 您可以使用预定义数量的空项目预填充 CheckInBean 内的 ItemBean 列表,这是用户可以使用表单添加到该 Bean 的 ItemBean 实例的最大数量。这比上面的选项不那么麻烦,但它往往会浪费内存。如果可以添加到 CheckInBean 的 ItemBean 的最大数量较小,那就没问题了。

关于java - 嵌套 bean 的 Spring 表单标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7938910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com