gpt4 book ai didi

java - 如何以 spring mvc 形式绑定(bind) Set

转载 作者:行者123 更新时间:2023-11-30 11:52:27 25 4
gpt4 key购买 nike

我有一个与 spring 表单 Controller 关联的命令对象:

public class PluginInstance {
private Set<PluginParameter> pluginParameters = new HashSet<PluginParameter>();
... some other string/long properties and getter setters...
}

PluginParameter 也有一个包含值的集合

public class PluginParameter {
private String parmName;
private Set<PluginParmvalue> pluginParmvalues = new HashSet<PluginParmvalue>();
...some other string/long properties and getter setters...
}

(通常 pluginParmvalues 将只包含一个值,一个列表已用于将来的可扩展性)

在 spring 表单中,我将值绑定(bind)为

<form:input path="pluginParameters[${itemsRow.index}].pluginParmvalues[0].parmValue" />

但问题是可以有一个 form:select(向用户呈现多个预定义选项)或 form:input(用户可以输入任何值)。这得从另一个对象来决定

public class PluginConfigParm {
private String parmName;
private ArrayList<String> choices;
...getter setters and other properties
}

我必须在 PluginConfigParm.paramName 的名称与 PluginParameter.paramName 匹配时比较 PluginConfigParm.choices.size() > 0 然后 form:select 将显示填充 PluginConfigParm.choices 中的值否则 form:input将显示。

问题很简单:我该怎么做。任何帮助将不胜感激。

最佳答案

通过在 Controller 中使用 List<> 而不是 Set<>。问题解决了。可能是 Set<> 没有可以与 spring 表单绑定(bind)的 getter/setter。

所以 <form:input path="pluginParameters[${itemsRow.index}].pluginParmvalues[0].parmValue" /> Controller 中的 List<> 让我的生活更轻松。

关于java - 如何以 spring mvc 形式绑定(bind) Set<CustomObject>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6820518/

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