Spring MVC için yeni. İlkbahar, İlkbahar MVC ve JPA/Hazırda Bekletme'yi kullanan bir uygulama yazıyorum Bahar MVC'nin bir açılır menüden model nesnesine nasıl bir değer yazacağını bilmiyorum. Customer.javaSpring MVC'de açılır kapanır değer bağlaması
@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
}
: Bunun çok yaygın bir senaryo İşte
hayal koddur
InvoiceCon troller.java InvoiceControler.addInvoice() çağrılır, bir fatura örneği bir parametre olarak alınan
@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";
}
}
. Faturada beklendiği gibi bir tutar var, ancak müşteri örneği özniteliği boş. Bunun nedeni, http gönderiminin müşteri kimliğini ve Fatura sınıfının bir Müşteri nesnesini beklemesidir. Bunu dönüştürmenin standart yolu nedir bilmiyorum.
Controller.initBinder() hakkında, Spring Type dönüşümü hakkında (http://static.springsource.org/spring/docs/current/spring-framework-reference/html/validation.html numaralı telefondan) okudum, ancak bu sorunun çözümü olup olmadığını bilmiyorum.
Herhangi bir fikrin var mı?
Ben
by