2017-11-26 7 views
0

저는 매우 이상하고 오히려 일치하지 않는 문제가 있으며 그 원인을 알 수 없습니다. 내 양식의 모든 드롭 다운을 non-Spring select에서 form : select로 변경하는 중입니다. select보다 훨씬 깔끔하고 간단합니다. 나는 아래의 코드에이 코드를 변경하고 지금 컨버터가 호출되지스프링 폼 : 폼에서 변환기를 호출하지 않기로 선택하십시오.

<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> 

와 객체가이 제대로 그러므로 strengthUnit 변환기를 호출하고 나의 오래된 방법은 내 컨트롤러에 null이 아닌 객체를 제공합니다 이 컨트롤러 칠 때 널 (null) :

<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 개의 다른 엔티티와 형태에 연결되어 있다는 것입니다 : 선택 태그는 다른 페이지에서 작동!

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

감사 :

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

여기에 올바르게 설정 클래스에 등록 첫 번째 방법을 사용하여 작동하는 strengthUnitConverter 클래스의 변환 방법은 다음과 같습니다 두 JSP는이 줄 선물을 가지고!

답변

0

발견! 경로 속성은 개체 자체가 아니라 그것의 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> 

내가 내 다른 페이지에서 일하고 있다고 생각하지만 난 오늘 아침에 잘못 알았다. 수정 된 경로로 더 이상 null 개체를 얻지 못합니다.