【问题标题】:Spring form:select not calling converter on form submitSpring form:选择在表单提交时不调用转换器
【发布时间】:2017-11-26 20:42:22
【问题描述】:

我有一个非常奇怪且相当不一致的问题,我不确定是什么原因造成的。我正在将表单中的所有下拉列表从非 Spring 选择更改为 form:select,因为我发现它们更干净、更简单。这是我的旧方法,它正确调用了strengthUnit转换器,因此为我的控制器提供了一个非空对象:

<select name="strengthUnit" path="strengthUnit.name" id="strengthUnit">
                        <option value="0" ${orderedMed.strengthUnit eq null ? 'selected' : ''}></option>
                        <c:forEach items="${strengthUnits}" var="strengthUnitSingle">
                            <option value="${strengthUnitSingle.id}" ${orderedMed.strengthUnit.name eq strengthUnitSingle.name ? 'selected' : ''}>${strengthUnitSingle.name}</option>
                        </c:forEach>
                    </select>

我已将此代码更改为下面的代码,现在转换器没有被调用,并且当它碰到控制器时对象为空:

<form:select name="strengthUnit" path="strengthUnit.id" id="strengthUnit">
                        <form:option value="0" label=""></form:option>
                        <form:options items="${strengthUnits}" itemLabel="name" itemValue="id"/>
                    </form:select>

更奇怪的是,这个特定的实体类型附加到 2 个不同的实体,而 form:select 标签在另一个页面中工作!两个 JSP 都有这一行:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

这是在配置类中正确注册并使用第一种方法工作的strengthUnitConverter类的转换方法:

@Override
public StrengthUnit convert(String id) 
{
    return strengthUnitService.findById(Integer.parseInt(id));
}

谢谢!

【问题讨论】:

    标签: java spring forms select converter


    【解决方案1】:

    找到问题了! path 属性需要指向实体本身而不是它的 ID:

    <form:select name="strengthUnit" path="strengthUnit" id="strengthUnit">
                        <form:option value="0" label=""></form:option>
                        <form:options items="${strengthUnits}" itemLabel="name" itemValue="id"/>
                    </form:select>
    

    我以为它在我的其他页面中工作,但今天早上发现我错了。更正路径后,我不再获得空对象。

    【讨论】:

      猜你喜欢
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      相关资源
      最近更新 更多