Realizei todos os procedimentos conforme a aula porém ao clicar no botão comprar do carrinho surge o seguinte erro: HTTP Status 404 - Not Found
Realizei todos os procedimentos conforme a aula porém ao clicar no botão comprar do carrinho surge o seguinte erro: HTTP Status 404 - Not Found
Type Status Report
Description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Esse é o meu CarrinhoComprasController:
package br.com.casadocodigo.loja.controllers;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView;
import br.com.casadocodigo.loja.daos.ProdutoDAO; import br.com.casadocodigo.loja.models.CarrinhoCompras; import br.com.casadocodigo.loja.models.CarrinhoItem; import br.com.casadocodigo.loja.models.Produto; import br.com.casadocodigo.loja.models.TipoPreco;
@Controller @RequestMapping("casadocodigo/carrinho") public class CarrinhoComprasController {
@Autowired
private ProdutoDAO produtoDAO;
@Autowired
private CarrinhoCompras carrinho;
@RequestMapping("/add")
public ModelAndView add(Integer produtoId, TipoPreco tipoPreco) {
System.out.println("inserido");
ModelAndView modelAndView = new ModelAndView("redirect:produtos");
CarrinhoItem carrinhoItem = criaItem(produtoId, tipoPreco);
carrinho.add(carrinhoItem);
return modelAndView;
}
private CarrinhoItem criaItem(Integer produtoId, TipoPreco tipoPreco) {
Produto produto = produtoDAO.find(produtoId);
CarrinhoItem carrinhoItem = new CarrinhoItem(produto, tipoPreco);
return carrinhoItem;
}
}
Meu appWebConfiguration:
package br.com.casadocodigo.loja.conf;
import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.support.ReloadableResourceBundleMessageSource; import org.springframework.format.datetime.DateFormatter; import org.springframework.format.datetime.DateFormatterRegistrar; import org.springframework.format.support.DefaultFormattingConversionService; import org.springframework.format.support.FormattingConversionService; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.support.StandardServletMultipartResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.view.InternalResourceViewResolver;
import br.com.casadocodigo.loja.controllers.HomeController; import br.com.casadocodigo.loja.daos.ProdutoDAO; import br.com.casadocodigo.loja.infra.FileSaver; import br.com.casadocodigo.loja.models.CarrinhoCompras;
@EnableWebMvc @ComponentScan(basePackageClasses = { HomeController.class, ProdutoDAO.class, FileSaver.class, CarrinhoCompras.class }) public class AppWebConfiguration {
@Bean
public InternalResourceViewResolver internalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(1);
return messageSource;
}
@Bean
public FormattingConversionService mvcConversionService() {
DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService();
DateFormatterRegistrar registrar = new DateFormatterRegistrar();
registrar.setFormatter(new DateFormatter("dd/MM/yyyy"));
registrar.registerFormatters(conversionService);
return conversionService;
}
@Bean
public MultipartResolver multipartResolver(){
return new StandardServletMultipartResolver();
}
}
Meu forme:
${preco.valor }
<button type="submit" class="submit-image icon-basket-alt" alt="Compre agora" title="Compre agora '${produto.titulo }'!">Botão</button>
</form>
Galera, encontrei o erro, o problema não estava no Controller, estava no meu formulário.
Olá Paulo!
Qual foi o erro que você encontrou?
O Form não estava enviando o id do produto. Eu corrigi a linha do código e funcionou. Ficou assim: