Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Utilizando busca com de produto por nome

Olá,

Olá, no meus estudos criei uma busca de produto por nome utilizando o @PathVariable, estava tudo funcionando bem, até eu salvar um produto com o nome de Livro Técnio, no banco de dados esta tudo certo, porém retorna um erro 400, se eu salvar o Livro Tecnio sem o acento funciona a busca. Por algum motivo não consigo realizar a busca utilizando acento. Já adicionei o código de encoding

@Override protected Filter[] getServletFilters() { CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter(); encodingFilter.setEncoding("UTF-8"); return new Filter[] {encodingFilter}; }

A minha URL ficou assim: HTTP://localhost:8080/produto/Livro Técnico.

Se eu passar como @RequestParam funciona.

Será que alguém pode me ajudar? Não queria utilizar o @RequestParam ou pelo menos entender o que pode ser.

1 resposta

Oi Fred

Para passar acentos no path da API você vai precisar fazer o escape. Usando a lib do Apache Commons você pode usar o StringEscapeUtils.escapeHtml4(String input)

Para usar o apache commons, coloque a dependência no seu pom.xml:

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.10</version>
</dependency>