【发布时间】:2011-07-25 18:20:35
【问题描述】:
我有一个与弹簧表单控制器关联的命令对象:
public class PluginInstance {
private Set<PluginParameter> pluginParameters = new HashSet<PluginParameter>();
... some other string/long properties and getter setters...
}
PluginParameter 中也有一个 Set,其中包含值
public class PluginParameter {
private String parmName;
private Set<PluginParmvalue> pluginParmvalues = new HashSet<PluginParmvalue>();
...some other string/long properties and getter setters...
}
(通常 pluginParmvalues 将只包含一个值,列表已用于将来的可扩展性)
在 spring 表单中,我将值绑定为
<form:input path="pluginParameters[${itemsRow.index}].pluginParmvalues[0].parmValue" />
但问题是可以有一个表单:选择(向用户呈现多个预定义选项)或表单:输入(用户可以输入任何值)。这必须由另一个对象决定
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会显示出来。
问题很简单:我该怎么做。 任何帮助将不胜感激。
【问题讨论】:
-
问题是一样的,但我想有两种可能的解决方案,如果你理解我的问题,请帮助我,我把它搞砸了。