Ở đây đi formBackingObject API
lấy một đối tượng ủng hộ đối với hình thức hiện tại từ yêu cầu nhất định
Một số kịch bản
- Tránh NullPointerException khi đi qua con đường lồng
...
public class Command {
private NestedClass nestedPath;
// getter's and setter's
}
Thông báo trên nestedPath lĩnh vực chưa được khởi tạo. Vì vậy, nếu bạn cố gắng để lấy giá trị của nó về hình thức như
<spring:form path="nestedPath.someProperty"/>
Vì nestedPath chưa được khởi tạo, Bạn sẽ nhận được NullPointerException khi đi qua một số tài sản nestedPath. Để tránh NullPointException, ghi đè formBackingObject
public Object formBackingObject(HttpServletRequest request) throws Exception {
Command command = new Command();
command.setNestedPath(new NestedClass());
return command;
}
Bạn nộp nhận dạng của một số lệnh (thường là bằng cách sử dụng phương thức GET) để cho phép người dùng cập nhật nó sau
public Object formBackingObject(HttpServletRequest request) throws Exception {
if(request.getMethod().equalsIgnoreCase("GET")) {
return commandRepository.findById(Integer.valueOf(request.getParameter("id")));
}
}
Và referenceData API
tạo ra một bản đồ dữ liệu tham khảo cho các yêu cầu nhất định
Bạn sử dụng referenceData để tạo ra dữ liệu được sử dụng bởi hình thức của bạn, ví dụ, một danh sách các loại
protected Map referenceData(HttpServletRequest request) throws Exception {
return new ModelMap().addAttribute(categoryRepository.findAll());
}
Về hình thức
<label>Select category</label>
<form:select path="category">
<form:option label="Select category" value=""/>
<form:options items="${categoryList}"
itemLabel="WHICH_PROPERTY_OF_CATEGORY_SHOULD_BE_USED_AS_LABEL"
itemValue="WHICH_PROPERTY_OF_CATEGORY_SHOULD_BE_USED_AS_VALUE"/>
</form:select>
Nguồn
2010-08-28 18:15:13
Tôi đã thu thập rằng phương pháp tham chiếu nên được sử dụng để điền dữ liệu biểu mẫu, trong trường hợp của tôi là một danh sách thả xuống đơn giản. Đối tượng sao lưu biểu mẫu được sử dụng bởi biểu mẫu để điền dữ liệu vào – Rachel