Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
Spring Boot no requerido requestParams predeterminado en nulo en lugar de una cadena vacía

Estoy usando Spring Boot como herramienta de búsqueda y tengo un problema al pasar los valores del front-end al back-end. Entonces, tengo un campo de select que estoy usando para esta herramienta de búsqueda, se usa para una búsqueda. Tiene 3 valores (PRIVADO, PÚBLICO y TODOS). La opción PRIVADA tiene el valor PRIVADO, la opción PÚBLICA tiene el valor PÚBLICO y TODAS tiene el valor cadena vacía '' . Cuando trato de pasar la API de búsqueda con la cadena vacía, el backend no obtiene la cadena vacía pero la intercepta como nula por alguna razón. Aquí está mi código para el front-end HTML / Vue.js

 <div class="col-sm-4 col-12"> <label for="statut" class="form-label">Statut</label> <select name="statut" class="form-select" id="statut" v-model="selectedVisibility"> <option value="PRIVATE">PRIVATE</option> <option value="PUBLIC">PUBLIC</option> <option value="">ALL</option> </select> </div>

Aquí está mi JS :

 async searchBy(){ { fetch(`http://localhost:100/api/v1/questions/search?statut=${this.selectedVisibility}`, {headers : authHeader()}) .then(response => response.json()) .then(data => { console.log(data); this.questions = data }) } },

Cuando paso el valor ALL, que es una cadena vacía '' , Spring Boot lo establece por defecto en null en lugar de mantener ese valor. Probablemente podría agregar un interior condicional ( if value is null ) value = ''; pero eso llevaría demasiado tiempo ya que tengo muchas herramientas de búsqueda, entonces, ¿hay alguna otra forma de hacer que tome el valor de la cadena vacía en lugar de null ? Aquí está el código de fondo:

 @GetMapping("/questions/search") @CrossOrigin(origins = "http://localhost:8081") public ResponseEntity<List<Question>> getQuestionByAtLeastOne ( @RequestParam(value="statut",required=false) EStatus statut) throws ResourceNotFoundException { List<Question> question= questionRepository.findByAtLeastOne(statut); return ResponseEntity.ok().body(question); }

findByAtLeastOne es solo un método que realiza la búsqueda, pero incluso antes de llegar a esa parte, el valor ya se ha convertido en null

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Podría usar el parámetro defaultValue como en @RequestParam(value = "status", required = false, defaultValue = "") statut su estado fuera una String .

Pero a partir de su código, parece que es una enum ( EStatus ) y con enum s defaultValue tiene que contener una expresión constante que podría pasarse a Enum.valueOf() . Si ese es el caso, incluso si especifica defaultValue = "" el valor seguirá siendo null . (Obviamente, funcionaría si tuviera un valor de enum predeterminado como "ALL" y usara defaultValue = "ALL" ).

De lo contrario, tendrá que manejar el valor null manualmente en el controlador o en su método de repositorio.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda