• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

189
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.

about 3 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. ;)

about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda