У меня проблемы с отправкой моего ArrayList обратно на мой контроллер при отправке формы. Я могу получить свои значения, используя что-то вроде этого:
@RequestBody MultiValueMap<String, String> formData
Но это не то, что я хочу, и это также предоставляет мои значения CSRF, которые я не хочу оценивать в моей форме. Отправить.
У меня есть класс модели оболочки, который выглядит следующим образом:
public class CustomPayCodesWrapper {
public ArrayList<CustomPayCodesModel> customCodes;
public ArrayList<CustomPayCodesModel> getCustomCodes() {
return customCodes;
}
public void setCustomCodes(ArrayList<CustomPayCodesModel> customCodes) {
this.customCodes = customCodes;
}
}
И моя модель:
public class CustomPayCodesModel {
public String codeName;
public String codeValue;
public String getCodeName() {
return codeName;
}
public void setCodeName(String codeName) {
this.codeName = codeName;
}
public String getCodeValue() {
return codeValue;
}
public void setCodeValue(String codeValue) {
this.codeValue = codeValue;
}
}
My .jsp:
<c:forEach var="item" items="${payCodes.customCodes}">
<div class="row col-md-9">
<div class="form-group row">
<label for="payCode" class="col-md-2 col-form-label">${item.codeName}</label>
<div class="col-md-10">
<input type="text" class="form-control" id="payCode" name="${item.codeName}" value="${item.codeValue}">
</div>
</div>
</div>
</c:forEach>
Я пробовал следующие привязки контроллера без какого-либо успеха:
@RequestMapping(value = "updateCustomPaymentCodes", method = RequestMethod.POST)
public ModelAndView updateCustomPayCodes(ModelAndView modelAndView, @ModelAttribute(value = "payCodes") CustomPayCodesWrapper userListWrapper,
ArrayList<CustomPayCodesModel> customCodes, @RequestBody MultiValueMap<String, String> formData, CustomPayCodesWrapper userListWrapper2) {
return showCustomPaymentCodes(modelAndView);
}