私はCardRequestResourceを投稿するフォームを作成しようとしている値であり、 ModelMap:Spring MVCのModelAttributeフィールドが代わりにフォーム入力のヌルが
<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>
:
@RequestMapping(value = { "", "/approval" }, method = RequestMethod.GET)
public String getApproval(ModelMap map) {
map.put("cardRequestResource", new CardRequestResource());
return "cardoffice/approval";
}
私のJSPはcardRequestResourceモデル属性を持つフォームを作成しますこの時点で
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);
}
ユーザーがコメントテキストエリアを更新すること、および隠し入力はユーザーがフィールドに入ったものに、条件付きで変更することがあります。
A JavaScript関数はフォームの値を移入するAJAX呼び出しを行います。フォームが送信されるときに、私は、次のJavaScript関数を呼び出す:
function postCardRequest(url) {
var serialized = $("#detailForm").serialize();
alert(serialized);
$.ajax({
type: "POST",
url: url,
data: serialized,
contentType: "application/json",
dataType: "json"
});
}
警告フィールドはどちらか元々AJAX/Javascriptをすることによって、またはユーザーによってロードされたデータを正しく装着されていることを示しています。しかし、ポストを処理するコントローラーのハンドラーに到達すると、CardRequestResourceはnullではありませんが、その中のすべての単一フィールドはNULLです!
ハンドラコード:
@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;
}
これは私の一日を保存しました!ありがとう – jmcg