Java Spring MVC-使用转换器将ID绑定到对象(ConversionServiceFactoryBean)

Java Spring MVC-使用转换器将ID绑定到对象(ConversionServiceFactoryBean),java,spring,spring-mvc,Java,Spring,Spring Mvc,我有两门课(Team,Coach): Team.java: @Entity @Table(name="TEAM") public class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID_TEAM") private Long idTeam; @Column(name = "NAME_TEAM") private String


我有两门课(
Team
Coach
):

Team.java:

@Entity
@Table(name="TEAM")
public class Team {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID_TEAM")
    private Long idTeam;

    @Column(name = "NAME_TEAM")
    private String nameTeam;

    @OneToOne
    @JoinColumn(name = "ID_COACH")
    private Coach coach;

    //Getters & Setters...
}
@Entity
@Table(name="COACH")
public class Coach {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID_COACH")
    private Long idCoach;

    @Column(name = "NAME_COACH")
    private String nameCoach;

    @OneToOne
    private Team team;

    //Getters & Setters...
}
Coach.java:

@Entity
@Table(name="TEAM")
public class Team {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID_TEAM")
    private Long idTeam;

    @Column(name = "NAME_TEAM")
    private String nameTeam;

    @OneToOne
    @JoinColumn(name = "ID_COACH")
    private Coach coach;

    //Getters & Setters...
}
@Entity
@Table(name="COACH")
public class Coach {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID_COACH")
    private Long idCoach;

    @Column(name = "NAME_COACH")
    private String nameCoach;

    @OneToOne
    private Team team;

    //Getters & Setters...
}
如您所见,它们之间存在
OneToOne
关系。

在我的表单中,我(成功地)从数据库中检索到所有教练

<form action="add" method="post">
    <label for="nameTeam">Team <span style="color: red;">*</span></label>
    <input type="text" name="nameTeam" id="nameTeam"/>

    <label for="coach">Coach <span style="color: red;">*</span></label>
    <select name="coach" id="coach">
        <option value="" disabled selected>- Select a coach -</option>
        <c:forEach var="coach" items="${coachs}">
            <option value="${coach.idCoach}">${coach.nameCoach}</option>
        </c:forEach>
    </select>

    <button type="submit">Add</button>
</form>
转换服务

<!-- Conversion Service -->
<mvc:annotation-driven conversion-service="conversionService"/>

<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <list>
            <bean class="converters.ToCoach"/>
        </list>
    </property> 
</bean>

任何人我有点被困在这里…最大的问题是我在控制台中没有收到任何错误消息,这使得很难(如果不是不可能)解决它…您的转换器被调用了吗?我在convert方法中添加了一个“sysout”,但控制台中没有显示任何内容。。。因此,我认为转换器没有被调用,但我不知道为什么要查看这个JIRA请求
https://jira.spring.io/browse/SPR-6801
。您可能必须在控制器上尝试使用
@modeldattribute
注释。还要注意具有修复程序的spring版本。让我知道它是否有效,好奇地想知道
@modeldattribute
注释是否起作用。有人吗??!我有点被困在这里…最大的问题是我在控制台中没有收到任何错误消息,这使得很难(如果不是不可能)解决它…您的转换器被调用了吗?我在convert方法中添加了一个“sysout”,但控制台中没有显示任何内容。。。因此,我认为转换器没有被调用,但我不知道为什么要查看这个JIRA请求
https://jira.spring.io/browse/SPR-6801
。您可能必须在控制器上尝试使用
@modeldattribute
注释。还要注意具有修复程序的spring版本。让我知道它是否有效,好奇地想知道
@modeldattribute
注释是否起作用。有人吗??!我有点被困在这里…最大的问题是我在控制台中没有收到任何错误消息,这使得很难(如果不是不可能)解决它…您的转换器被调用了吗?我在convert方法中添加了一个“sysout”,但控制台中没有显示任何内容。。。因此,我认为转换器没有被调用,但我不知道为什么要查看这个JIRA请求
https://jira.spring.io/browse/SPR-6801
。您可能必须在控制器上尝试使用
@modeldattribute
注释。还要注意具有修复程序的spring版本。让我知道它是否有效,我想知道
@modeldattribute
注释是否起作用。