Spring MVC를 처음 사용합니다. Spring, Spring MVC 및 JPA/Hibernate를 사용하는 응용 프로그램을 작성 중입니다. Spring MVC에서 모델 객체로 드롭 다운 값을 설정하는 방법을 모르겠습니다. Customer.javaSpring MVC의 Dropdown 값 바인딩
@Entity
public class Customer {
@Id
@GeneratedValue
private Integer id;
private String name;
private String address;
private String phoneNumber;
//Getters and setters
}
invoice.jsp
<form:form method="post" action="add" commandName="invoice">
<form:label path="amount">amount</form:label>
<form:input path="amount" />
<form:label path="customer">Customer</form:label>
<form:select path="customer" items="${customers}" required="true" itemLabel="name" itemValue="id"/>
<input type="submit" value="Add Invoice"/>
</form:form>
Invoice.java
@Entity
public class Invoice{
@Id
@GeneratedValue
private Integer id;
private double amount;
@ManyToOne(targetEntity=Customer.class, fetch=FetchType.EAGER)
private Customer customer;
//Getters and setters
}
:이 매우 일반적인 시나리오 여기
상상할 수있는 것은 코드
InvoiceCon troller.java InvoiceControler.addInvoice()가 호출 인보이스 인스턴스를 매개 변수로서 수신
@Controller
public class InvoiceController {
@Autowired
private InvoiceService InvoiceService;
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addInvoice(@ModelAttribute("invoice") Invoice invoice, BindingResult result) {
invoiceService.addInvoice(invoice);
return "invoiceAdded";
}
}
. 송장의 금액은 예상대로이지만 고객 인스턴스 속성은 null입니다. 이것은 http 포스트가 고객 ID를 제출하고 Invoice 클래스가 Customer 객체를 기대하기 때문입니다. 나는 그것을 변환하는 표준 방법이 무엇인지 모른다.
스프링 타입 변환 (http://static.springsource.org/spring/docs/current/spring-framework-reference/html/validation.html)에 대해 Controller.initBinder()에 대해 읽었지만이 문제에 대한 해결책인지 잘 모릅니다.
아이디어가 있으십니까?
가 나는 그것이 <폼 교체 작업을했다 : 선택 경로 = "고객".. ./>
–