Как я могу использовать объект th: в форме, но пропустить поле внутри формы в тимлефовой весенней загрузке - PullRequest
0 голосов
/ 14 сентября 2018

Я отправляю объект в эту форму с контроллера, все отлично работает в моем HTML:

<form th:action="@{/sgc/modificarObraPost}" th:object="${obra}"method="POST"
                                enctype="multipart/form-data">
                        <div class="form-group">
                            <label for="nombre"><b>Nombre nuevo de la Obra</b></label>
                            <input class="form-control " type="text" th:field="*{nombre}" th:value="${nombre}" th:name="nombreobra" id="nombreobra">  
                        </div> 

                        <div class="form-group">
                            <label for="descripcion"><b>Genero</b></label>
                            <select th:name="genero" class="form-control ">
                            <option th:each="gene : ${genero}" th:field="*{genero}" th:value="${gene.getNombre()}" th:text="${gene.getNombre()}">genero</option>
                            </select>
                        </div>   

                        <div class="form-group">
                            <label for="nombre"><b>Cantidad Vendida</b></label>
                            <input class="form-control " type="text" th:field="*{cantidadVendidas}" th:value="${vendido}" th:name="vendido" id="vendido">  
                        </div>                                       

                        <div class="form-group">
                                    <label for="imagen"><b> Sube tu Imagen</b></label> <input
                                        class="form-control-file" type="file" size="50"
                                        placeholder="sube la imagen" th:name="imagen" id="imagen"
                                        accept="image/png,image/jpeg" onChange="verNombre()"/>
                                </div>
                        <div class="pull-right row-mt-6em">
                        <button type="submit" class="btn btn-success btn-md pull-right">Modificar</button>
                        </div>
                    </form>

Проблема в том, что я не хочу, чтобы последний ввод (ввод изображения) был добавленкак поле для моего объекта в форме, так как есть совпадение пропущенных типов, и я хочу получить это изображение с @RequestParam и установить его в моем другом контроллере.Есть что-то вроде th: notfield или что-то такое, что моя форма не думает, что я хочу изменить это поле в моем объекте?

1 Ответ

0 голосов
/ 14 сентября 2018

Если я правильно понимаю, вы хотите обновить уже существующий объект Вы можете удалить следующий div со страницы html

 <div class="form-group">
     <label for="imagen"><b> Sube tu Imagen</b></label> 
     <input
           class="form-control-file" type="file" size="50"
           placeholder="sube la imagen" th:name="imagen" id="imagen"
           accept="image/png,image/jpeg" onChange="verNombre()"/>
 </div>

Затем в вашем контроллере и, более конкретно, в отображении запроса, который вы обрабатываете для обновления (/ sgc / modificarObraPost), вы можете написать следующие строки кода

Obra obraOriginal = getById(obra.getId()); //get the object that is in the database that you want to modify
String[] ignoreProperties = { "nombre", "genero", "cantidadVendidas"}; //you want to ignore properties that you pass from the front page
BeanUtils.copyProperties(obra, obraOriginal, ignoreProperties); //the obra object is the object that you pass in the controller

Таким образом, вы создаете объект obra, который имеет все исходные свойства плюс те, которые есть у вас из формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...