5
respostas

Erro ao fazer URLs amigaveis

Boa tarde.

estou tentando implementar a parte de URLs amigáveis, tenho um controller categoria que recebe um valor fixo do form method = get e faz a pesquisa com esse nome.

minha URL fica assim:

http://localhost:8080/rprvidros/categoria?categoria=%27Ferramentas%27

gostaria de deixar como no curso:

http://localhost:8080/rprvidros/categoria/Ferramentas

segue meu form:

<form action="/rprvidros/categoria" method="get">    
                    <button type="submit" class="botao-categoria">
                        <span class="icon-tools"></span>
                        <h2>Ferramentas</h2>
                    </button>
                    <input type="hidden" name="categoria" value="'Ferramentas'"/>    
                </form>

e meu controller:

@RequestMapping("/categoria/{categoria}")
    public ModelAndView categoria(@PathVariable("categoria")String categoria){
        ModelAndView modelAndView = new ModelAndView("categoria");
        List<Produtos> produtos = dao.produtosCategoria(categoria);
        return modelAndView.addObject("produto", produtos);
    }

quando envio o form, ele me retorna erro 404, e a url continua igual antes não muda em nada.

obrigado.

5 respostas

Opa, o seu form está assim:

<form action="/rprvidros/categoria" method="get">

deveria ser assim:

<form action="/rprvidros/categoria/Ferramentas" method="get">

Opa, o seu form está assim:

<form action="/rprvidros/categoria" method="get">

deveria ser assim:

<form action="/rprvidros/categoria/Ferramentas" method="get">

Alberto, o Ferramentas, é a String que vou pesquisar no banco de dados,como tem outros valores nos outros botões, nao tenho nada que atenda essa url:

<form action="/rprvidros/categoria/Ferramentas" method="get">

Essa url é atendida pelo requestmapping que você configurou.

/categoria/{categoria}

Alberto acredito que não quando faço a alteração que voce me sugeriu ele me da esse erro:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'Ferramentas' in 'where clause'

ele esta procurando uma coluna com o nome Ferramentas.

e a url fica dessa forma:

http://localhost:8080/rprvidros/categoria/Ferramentas?categoria=%27Ferramentas%27