D'État HTTP 405 - Demande de la méthode "POST" pas pris en charge (Spring MVC)

Im obtenir cette erreur: HTTP Status 405 - Request method 'POST' not supported

Ce que je suis en train de faire, c'est de faire un formulaire avec une liste déroulante qui se rempli en fonction de la valeur sélectionnée dans un autre menu déroulant. Par exemple lorsque je sélectionne un nom dans le customerName zone de la onChange fonction dans les .page jsp doit être exécuté et la page présentée, alors chargé à nouveau avec les valeurs correspondantes dans le customerCountry boîte.

cependant, je suis l'obtention de ce Statut HTTP 405 erreur. J'ai cherché sur internet une solution, mais qui n'ont pas été en mesure de trouver quelque chose qui a aidé. Voici les parties pertinentes de mon code:

partie de la page jsp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
.error { color: red; }
</style>
<script>
function repopulate(){  
document.deliveryForm.submit();
}
function setFalse(){
document.getElementById("hasId").value ="false";
document.deliveryForm.submit();
//document.submitForm.submit(); (This was causing the error)
}
</script>
</head>
<body>
<h1>Create New Delivery</h1>
<c:url var="saveUrl" value="/test/delivery/add" />
<form:form modelAttribute="deliveryDtoAttribute" method="POST" action="${saveUrl}" name="deliveryForm">
<table>
<tr>
<td><form:hidden id="hasId" path="hasCustomerName" value="true"/></td>
</tr>
<tr>
<td>Customer Name</td>
<td><form:select path="customerName" onChange="repopulate()">
<form:option value="" label="--- Select ---" />
<form:options items="${customerNameList}" />
</form:select>
</td>
<td><form:errors path="customerName" cssClass="error" /></td>
</tr>
<tr>
<td>Customer Country</td>
<td><form:select path="customerCountry">
<form:option value="" label="--- Select ---" />
<form:options items="${customerCountryList}" />
</form:select>
</td>
<td><form:errors path="customerCountry" cssClass="error" /></td>
</tr>
</form:form>
<form:form name="submitForm">
<input type="button" value="Save" onClick="setFalse()"/>
</form:form>
</body>
</html>

partie de contrôleur:

@RequestMapping(value = "/add", method = RequestMethod.GET)
public String getDelivery(ModelMap model) {
DeliveryDto deliveryDto = new DeliveryDto();
model.addAttribute("deliveryDtoAttribute", deliveryDto);
model.addAttribute("customerNameList",
customerService.listAllCustomerNames());
model.addAttribute("customerCountryList", customerService
.listAllCustomerCountries(deliveryDto.getCustomerName()));
return "new-delivery";
}
//I want to enter this method if hasId=true which means that a value in the CustomerName 
//drop down list was selected. This should set the CountryList to the corresponding values 
//from the database. I want this post method to be triggered by the onChange in the jsp page
@RequestMapping(value = "/add", method = RequestMethod.POST, params="hasCustomerName=true")
public String postDelivery(
@ModelAttribute("deliveryDtoAttribute") DeliveryDto deliveryDto,
BindingResult result, ModelMap model) {
model.addAttribute("deliveryDtoAttribute", deliveryDto);
model.addAttribute("customerNameList",
customerService.listAllCustomerNames());
model.addAttribute("customerCountryList", customerService
.listAllCustomerCountries(deliveryDto.getCustomerName()));
return "new-delivery";
}
//This next post method should only be entered if the save button is hit in the jsp page
@RequestMapping(value = "/add", method = RequestMethod.POST, params="hasCustomerName=false")
public String postDelivery2(
@ModelAttribute("deliveryDtoAttribute") @Valid DeliveryDto deliveryDto,
BindingResult result, ModelMap model) {
if (result.hasErrors()) {
model.addAttribute("deliveryDtoAttribute", deliveryDto);
model.addAttribute("customerNameList",
customerService.listAllCustomerNames());
model.addAttribute("customerCountryList", customerService
.listAllCustomerCountries(deliveryDto.getCustomerName()));
return "new-delivery";
} else {
Delivery delivery = new Delivery();
//Setters to set delivery values
return "redirect:/mis/home";
}
}

Comment ai-je reçois ce message d'erreur? Toute aide serait grandement appréciée! Grâce

EDIT: Changé hasId à hasCustomerName. J'ai toujours l' HTTP Status 405 - Request method 'POST' not supported erreur.

EDIT2: Commenté la ligne dans le setFalse fonction qui était la cause de l'erreur

//D

Pourquoi le vote vers le bas? Merci de me fournir une explication pour que je puisse poster de meilleures questions à l'avenir. Merci
pour les personnes de frapper cette question et à venir sur cette page, vérifiez également que l'action définie frappe un point de terminaison existant, qui a été mon problème 🙂

OriginalL'auteur dlinx90 | 2012-06-21