Всем добрый вечер! Сравнила свой код с приведенным кодом
garbuz и не могу понять что у меня не так. при submit операции по редактированию получаю ошибку
2014-08-24 01:08:09,378 DEBUG tener-1(4) uestMappingHandlerMapping: 209 str. - Looking up handler method for path /DB/service/OsnService/updateClient/41
2014-08-24 01:08:09,390 DEBUG tener-1(4) nHandlerExceptionResolver: 132 str. - [b]Resolving exception from handler [null]: org.springframework.web.HttpRequestMethodNotSupportedExcepti on: Request method 'POST' not supported[/b]
2014-08-24 01:08:09,390 DEBUG tener-1(4) seStatusExceptionResolver: 132 str. - Resolving exception from handler [null]: org.springframework.web.HttpRequestMethodNotSupportedExcepti on: Request method 'POST' not supported
2014-08-24 01:08:09,391 DEBUG tener-1(4) tHandlerExceptionResolver: 132 str. - Resolving exception from handler [null]: org.springframework.web.HttpRequestMethodNotSupportedExcepti on: Request method 'POST' not supported
2014-08-24 01:08:09,392 WARN tener-1(4) .web.servlet.PageNotFound: 194 str. - [b]Request method 'POST' not supported[/b]
2014-08-24 01:08:09,392 DEBUG tener-1(4) servlet.DispatcherServlet: 999 str. - [b]Null ModelAndView returned to DispatcherServlet with name 'mvc-dispatcher-servlet': assuming HandlerAdapter completed request handling[/b]
2014-08-24 01:08:09,393 DEBUG tener-1(4) servlet.DispatcherServlet: 946 str. - Successfully completed request
2014-08-24 01:08:09,394 DEBUG tener-1(4) xceptionTranslationFilter: 115 str. - Chain processed normally
2014-08-24 01:08:09,394 DEBUG tener-1(4) yContextPersistenceFilter: 97 str. - SecurityContextHolder now cleared, as request processing completed
Сам контроллер ContractsController.class
@Controller
@RequestMapping("/DB/service/OsnService")
public class ContractsController {
private static final Logger logger = Logger.getLogger(ContractsController.class);
public static final String DATE_FORMAT = "dd.MM.yyyy";
@Autowired
DataServise dataServise;
@RequestMapping(value="showClients", method = RequestMethod.GET)
public String showClients(ModelMap contractsModel) {
List<Client> clientList = dataServise.getAllClients();
contractsModel.addAttribute("clientList", clientList);
return "client_contract/show_ekvar_table";
}
@RequestMapping(value = "createClientsStart", method = RequestMethod.GET, params = "insertEkvar")
public String insertClientStart(ModelMap contractsModel) {
return "client_contract/add_ekvar";
}
@RequestMapping(value = "addClient", method = RequestMethod.GET)
public String addClient(
@RequestParam(value = "clientName", required = false) String clientName,
@RequestParam(value = "clientINN", required = false) Long clientINN,
@RequestParam(value = "clientAccount", required = false) Long clientAccount,
@RequestParam(value = "clientNumberContract", required = false) String clientNumberContract,
@RequestParam(value = "clientDataStart", required = false) Date clientDataStart,
@RequestParam(value = "clientPrice", required = false) BigDecimal clientPrice,
@RequestParam(value = "clientQuantity", required = false) Integer clientQuantity,
@RequestParam(value = "clientDataEndRent", required = false) Date clientDataEndRent,
@RequestParam(value = "clientDataEndPrice", required = false) Date clientDataEndPrice,
ModelMap contractsModel) {
dataServise.addClient(clientName, clientINN, clientAccount, clientNumberContract, clientDataStart, clientPrice,
clientQuantity, clientDataEndRent, clientDataEndPrice);
return "redirect:showClients";
}
@RequestMapping(value = "/deleteClient/{id}", method = RequestMethod.GET)
public String deleteClient(@PathVariable ("id") Long id){
dataServise.deleteClient(id);
return "client_contract/delete_ekvar";
}
@RequestMapping(value = "/clients", method = RequestMethod.GET)
public ModelAndView get() {
ModelAndView mav = new ModelAndView("client_contract/update_ekvar");
mav.addObject("clientList", dataServise.getAllClients());
mav.addObject("client", new Client());
return mav;
}
@RequestMapping(method = RequestMethod.GET)
public String addUpdate(@Validated @ModelAttribute("client") Client client, BindingResult result) {
if (!result.hasErrors()){
dataServise.updateClient(client);
}
return "redirect:/clients";
}
@RequestMapping(value = "/updateClient/{id}", method = RequestMethod.GET)
public String updateClient(@PathVariable Long id, ModelMap contractsModel) {
Client client = dataServise.getById(id);
contractsModel.addAttribute("client", client);
return "client_contract/update_ekvar";
}
//Для корректности отображения ввода даты в БД
@InitBinder
public void initBinder(WebDataBinder binder) {
// Это чтобы пустые строки превращались в null
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
// Это чтобы строки, содержащие дату, превращались в java.util.Date
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
private @Autowired
ServletContext servletContext;
@RequestMapping(value = "createClientsStart", method = RequestMethod.GET, params = "writeContrReady")
public String writeClientStart(ModelMap contractsModel) {
List<Client> clientList = dataServise.getAllClients();
contractsModel.addAttribute("clientList", clientList);
return "client_contract/client_file";
}
@RequestMapping(value = "/file", method = RequestMethod.GET)
public @ResponseBody String myFileClient() throws IOException {
InputStream inputStream = null;
try {
inputStream = servletContext.getResourceAsStream("/WEB-INF/read_write_file/clientFile.txt");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
return bufferedReader.readLine();
} finally {
if (inputStream != null) {
inputStream.close();
}
}
}
}
и мой update_ekvar.jsp
<table>
<c:forEach items="${clientList}" var="client">
<tr>
<td>${client.getId()}</td>
<td>${client.getName()}</td>
<td>${client.getINN()}</td>
<td>${client.getAccount()}</td>
<td>${client.getNumberContract()}</td>
<td><fmt:formatDate value="${client.getDataStart()}" pattern="dd.MM.yyyy" /></td>
<td>${client.getPrice()}</td>
<td>${client.getQuantity()}</td>
<td><fmt:formatDate value="${client.getDataEndRent()}" pattern="dd.MM.yyyy"/> </td>
<td><fmt:formatDate value="${client.getDataEndPrice()}" pattern="dd.MM.yyyy"/> </td>
</tr>
</c:forEach>
</table>
<form:form method="post" modelAttribute="client">
<form:hidden path="id"/>
<table>
<tr>
<td><form:input type="text" path="name"/>наименование</td>
</tr>
<tr>
<td><form:input type="number" path="INN"/>ЭДРПОУ</td>
</tr>
<tr>
<td><form:input type="number" path="account"/>счет</td>
</tr>
<tr>
<td><form:input type="text" path="numberContract"/>номер контракта</td>
</tr>
<tr>
<td><form:input type="date" path="dataStart"/>дата контракта</td>
</tr>
<tr>
<td><form:input type="number" path="price"/>цена ПОС-терминала грн.</td>
</tr>
<tr>
<td><form:input type="number" path="quantity"/>количество ПОС-терминалов шт.</td>
</tr>
<tr>
<td><form:input type="date" path="dataEndRent"/>дата окончание догора оренды</td>
</tr>
<tr>
<td><form:input type="date" path="dataEndPrice"/>дата окончания оплаты</td>
</tr>
</table>
<label>
<input type="submit" value="Сохранить изменения">
</label>
</form:form>
ссылка на контролер для редактирования идет из файла show_ekvar_table.jsp
<form action="${pageContext.request.contextPath}/DB/service/OsnService/createClientsStart">
<table border="1">
<tr>
<%--<th></th>--%>
<th>номер</th>
<th>наименование</th>
<th>ЭДРПОУ</th>
<th>счет</th>
<th>номер <br/> контракта </th>
<th>дата <br/> контракта </th>
<th>цена <br/> ПОС-терминала <br/> грн.</th>
<th>количество <br/> ПОС-терминалов <br/> шт.</th>
<th>дата окончание <br/> догора оренды</th>
<th>дата окончания <br/> оплаты</th>
<th></th>
</tr>
<c:forEach items="${clientList}" var="client">
<tr>
<td>${client.getId()}</td>
<td>${client.getName()}</td>
<td>${client.getINN()}</td>
<td>${client.getAccount()}</td>
<td>${client.getNumberContract()}</td>
<td><fmt:formatDate value="${client.getDataStart()}" pattern="dd.MM.yyyy" /></td>
<td>${client.getPrice()}</td>
<td>${client.getQuantity()}</td>
<td><fmt:formatDate value="${client.getDataEndRent()}" pattern="dd.MM.yyyy"/> </td>
<td><fmt:formatDate value="${client.getDataEndPrice()}" pattern="dd.MM.yyyy"/> </td>
<td>
<a href="${pageContext.request.contextPath}/DB/service/OsnService/deleteClient/${client.getId()}">
<img src="${pageContext.request.contextPath}/resources/images/dell.jpg" alt=""/>
</a>
<a href="${pageContext.request.contextPath}/DB/service/OsnService/updateClient/${client.getId()}">
<img src="${pageContext.request.contextPath}/resources/images/update.jpg" alt=""/>
</a>
</td>
</tr>
</c:forEach>
</table>
<label>
<input type="submit" id="insertEkvar" name="insertEkvar" value="Созадть" class="submit" >
</label>
<label>
<input type="submit" id="writeContrReady" name="writeContrReady" value="Действующие контракты" class="submit">
</label>
<label>
<input type="button" id="write" name="write" value="Заканчивающиеся догова аренды" onclick="WriteFileEkvar()">
</label>
</form >
почему выползает ошибка
HTTP Status 405 - Request method 'POST' not supported ни как не пойму, подскажите пож., помогите. Заранее все спасибо!