Spring <form:select>标签和命令对象不匹配</form:select>

时间:2011-09-05 11:47:48

标签: java forms spring jsp spring-mvc

我在我的项目中使用spring。因为spring会自动填充来自命令对象的表单字段。有一个comboBox案例,其中命令对象具有值 newtypename (lowerCase),并且填充comboBox的列表具有此名称为 NewTypeName (camelCase)。这些值不匹配,并且未自动选择我的comboBox值。

当我设置具有值 NewTypeName 的命令对象时;它匹配并且表单加载了在comboBox中选择的值。

<form:select multiple="single" path="pluginType" id="pluginType" cssClass="dropDownSelect-small" tabindex="3" onchange="changeState()">
    <form:option value="0" label="Select" />
    <form:options items="${pluginTypeList}" />
</form:select>

我怎样才能实现所有情况都完美无缺的情况,即我是否输入lowerCase或camel Case。我应该在comboBox中选择该值。

2 个答案:

答案 0 :(得分:0)

我想我明白你在这里想做什么......

选项1:如果您可以更改选项列表中的值,那么这将是一种方法:

<form:options items="${fn.toLowerCase(pluginTypeList)}" />

这需要加载JSTL函数库。

很可能您不能只更改这些值,因为应用程序已在使用中。

选项2:使选项的值控制显示值的小写版本。 这将需要更改表单的处理逻辑。

选项3:你需要实现一个'to camel case'方法,这看起来像一个kludge。

答案 1 :(得分:0)

由于JAVA区分大小写,因此comboBox案例问题,其中命令对象具有值newtypename(lowerCase)和列表,填充comboBox具有此名称,因为NewTypeName(camelCase)已使用业务逻辑修复。