스프링 웹 응용 프로그램에서 Converter를 사용하려고합니다.스프링이 변환기를 보지 못합니다.
public class RoleConverter implements Converter<String, Role> {
@Autowired
private RoleService roleService;
public Role convert(String id) {
return roleService.getRole(Integer.parseInt(id));
}
}
내가 해당 XML을 구성한 :
<mvc:annotation-driven conversion-service="conversionService" />
<beans:bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<beans:property name="converters">
<beans:set>
<beans:bean class="net.schastny.contactmanager.converters.RoleConverter"/>
</beans:set>
</beans:property>
</beans:bean>
내가 또한 class="org.springframework.context.support.ConversionServiceFactoryBean"
대신
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
을 사용하려고하지만 아무것도 도움이되지 여기에 코드입니다. 난 항상 예외가 :
[java.lang.String의] 필요한 유형 유형의 값을 변환 할 수 없습니다 [net.schastny.contactmanager.domain.Role] 재산의 역할 '에 대한 : 없음 일치 편집자 또는 전환 전략 발견]
내가 잘못하고있는 것을 인식하도록 도와주세요. 나는이 문제를 해결하기 위해 약 16 시간을 소비했지만 아무것도 여기 좋아 무슨 일인지 짧은 설명입니다 :(
UPD를 도왔 : 나는 역할 클래스 (일대)가 포함되어 사용자 클래스를 가지고 역할을 가지고있는 사용자를 만들 수 있습니다 JSP를 쓰고 싶어 내가 역할을 선택하기위한 드롭 다운을 사용하여 :
<form:form method="post" action="add" commandName="user">
Login: <form:input path = "login" value = "" />
Password: <form:input path = "password" value = "" />
Select role:
<form:select path="role">
<form:options items="${roleList}" itemValue="id" itemLabel="description"/>
</form:select>
<input type="submit" value = "add">
</form:form>
그래서 생각 나는 역할의 ID가 제출 한 후 내가 변환기를 사용하여 ID로 역할을 취득 할 수 있도록한다는 것입니다 예외를 발생시키는 메서드 코드는 매우 쉽습니다.
@RequestMapping("/add")
public String home(@ModelAttribute User user) {
System.out.println(user.getRole().getDescription());
System.out.println(user.getLogin());
System.out.println(user.getPassword());
return "redirect:/index";
}
예외를 유발하는 코드를 보여줍니다. – Jukka