Tôi đang cố gắng để thực hiện một hình thức mà sẽ gửi một CardRequestResource:Spring MVC ModelAttribute Fields là Null Thay vì Input Form Values
public class CardRequestResource extends ResourceSupport{
private Long cardRequestId;
private String deliveryMethod;
private String address;
private boolean isHomeDelivery;
private String requestDate;
private String expectedDate;
private String comments;
private Long statusId;
private PersonResource person;
//Getters and Setters
}
Trong điều khiển của tôi, đầu tiên tôi nạp JSP và thêm một CardRequestResource trống để các ModelMap:
@RequestMapping(value = { "", "/approval" }, method = RequestMethod.GET)
public String getApproval(ModelMap map) {
map.put("cardRequestResource", new CardRequestResource());
return "cardoffice/approval";
}
My JSP được xây dựng theo hình thức với mô hình cardRequestResource thuộc tính:
<form:form id="detailForm" name="detailForm" modelAttribute="cardRequestResource">
<form:input path="statusId" type="hidden" id="statusId" name="statusId" />
<form:textarea path="comments" name="comments" id="commentTextarea" rows="7" cols="81" style="font-style: normal;"/>
</form:form>
.210
Một chức năng Javascript thực hiện cuộc gọi AJAX để điền giá trị hình thức:
function getCardRequestDetails(cardRequestUrl) {
$.ajax({
type : "GET",
url : cardRequestUrl,
dataType : "json",
success : function(response) {
loadCardRequestDetails(response);
},
error : function(response) {}
});
};
function loadCardRequestDetails(cardRequest) {
$("#statusId").attr("value", cardRequest.statusId);
$("#commentTextarea").val(cardRequest.comments);
}
Tại thời điểm này người dùng có thể cập nhật các vùng văn bản bình luận, và đầu vào ẩn có thể thay đổi điều kiện về những gì người dùng nhập vào lĩnh vực này. Sau đó, khi biểu mẫu được gửi, tôi gọi hàm javascript sau:
function postCardRequest(url) {
var serialized = $("#detailForm").serialize();
alert(serialized);
$.ajax({
type: "POST",
url: url,
data: serialized,
contentType: "application/json",
dataType: "json"
});
}
Cảnh báo cho thấy các lĩnh vực được dân cư một cách chính xác với các dữ liệu đã được một trong hai ban đầu nạp bởi AJAX/Javascript, hoặc bởi người sử dụng. Tuy nhiên khi tôi nhận được để xử lý trong bộ điều khiển của tôi xử lý các bài viết, các CardRequestResource là không null, nhưng MỌI lĩnh vực SINGLE trong nó là NULL!
đang Handler:
@RequestMapping(value = "/approval/submit", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> postCardRequest(@ModelAttribute(value = "cardRequestResource") CardRequestResource cardRequestResource) {
Map<String, Object> responseMap = new HashMap<String, Object>();
final String success = "success";
Boolean isSuccessful = Boolean.FALSE;
if(cardRequestResource != null){
isSuccessful = Boolean.TRUE;
}
//TODO
System.out.println("Status: " + cardRequestResource.getStatusId() + ", Comments: " + cardRequestResource.getComments());
responseMap.put(success, isSuccessful);
return responseMap;
}
Điều này đã lưu ngày của tôi! Cảm ơn – jmcg