Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

237
Vistas
Establecer valores en thymeleaf usando un mapa

Genera una lista de casillas de verificación a partir del mapa. Ahora cómo establecer el valor de la clave (falso/verdadero) y ahora puedo descargarlo en UserConfig para poder usar este valor en el resto del proyecto.

Mi vista:

 <body> <main> <form th:action="@{/file/uploadFile}" enctype="multipart/form-data" method="POST"/> <fieldset> <legend>Generate Report</legend> <label> Upload File <input name="file" type="file" required/> <input type="submit" value="Upload"/> </label> <label th:each="item : ${userConfig.isEnableMap}"> <input type="checkbox" id="" th:text="${item.key}" th:value="${item.value}"/> </label> </form> </fieldset> </main> </body>

Mi clase UserConfig:

 @Component public class UserConfig { private Map<String, Boolean> isEnableMap = new HashMap<>(); public UserConfig() { isEnableMap.put(EnableProcess.MONTHLY_TIME_UPDATE.getName(), false); isEnableMap.put(EnableProcess.SUM.getName(), false); isEnableMap.put(EnableProcess.HIDE_COLUMNS.getName(), true); } public UserConfig(Map<String, Boolean> isEnableMap) { this.isEnableMap = isEnableMap; } public Map<String, Boolean> getIsEnableMap() { return isEnableMap; } public void setIsEnableMap(Map<String, Boolean> isEnableMap) { this.isEnableMap = isEnableMap; } public enum EnableProcess { MONTHLY_TIME_UPDATE("Monthly time update"), SUM("Sum"), HIDE_COLUMNS("Hide columns"); private final String name; EnableProcess(String name) { this.name = name; } public String getName() { return name; } }

Controlador

 @PostMapping(value = "/uploadFile", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) public ResponseEntity<Resource> uploadFile(@RequestParam("file") MultipartFile file, @ModelAttribute("userConfig") UserConfig userConfig) { String fileName = file.getOriginalFilename(); if (getExtension(fileName).equals("XLSX") || getExtension(fileName).equals("XLS")) { XSSFWorkbook workbook = reportService.processFile(file); reportService.writeWorkbook(workbook); } Resource resource = new ClassPathResource("temp/" + reportConst.getTempFileName()); HttpHeaders headers = new HttpHeaders(); headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + reportConst.getTempFileName() + "\""); return new ResponseEntity<>(resource, headers, HttpStatus.OK); }

No uso la base de datos. Solo necesita que se guarden los valores con el fin de generar el informe.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Con preprocesamiento (si te entendí bien), podríamos intentar algo como:

 <input th:field="*{userConfig.isEnableMap['__${item.key}__']}" ... />

... suponiendo que el resto funcione. ;)

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda