Введение в Thymeleaf
Проще говоря, Thymeleaf - это шаблонный двигатель, похожий на скорость и Freemarker, который может полностью заменить JSP. По сравнению с другими шаблонными двигателями, он имеет следующие три чрезвычайно привлекательные функции:
1. Dhymeleaf можно запустить в среде с сетью или без нее, то есть он позволяет художникам просматривать статические эффекты страниц в браузере, а также позволяет программистам просматривать эффекты динамических страниц с помощью данных на сервере. Это связано с тем, что он поддерживает прототипы HTML, а затем добавляет дополнительные атрибуты к тегу HTML для достижения метода отображения шаблонов + данных. Когда браузер интерпретирует HTML, неопределенные атрибуты тега будут игнорироваться, поэтому шаблон Thymeleaf может работать по статически; Когда данные возвращаются на страницу, тег Thymeleaf динамически заменит статическое содержимое, делая страницу динамически отображаться.
2. Thymeleaf выходит из коробки. Он предоставляет два диалекта: стандартный и пружинный стандарт. Вы можете напрямую применять шаблоны для достижения эффектов экспрессии JSTL и OGNL, избегая проблемы размещения шаблонов, JSTL и изменения тегов каждый день. В то же время разработчики также могут расширять и создавать пользовательские диалекты.
3. Thymeleaf обеспечивает стандартный диалект пружины и дополнительный модуль, который идеально интегрирован с SpringMVC, который может быстро реализовать привязку формы, редактор атрибутов, интернационализацию и другие функции.
Метод загрузки формы:
//html: <form enctype="multipart/form-data" method="post" action="/sell/imageUpload"><div> <button type="button" data-dismiss="modal" aria-hidden="true"> </button> <h4 id="myModalLabel">Edit goods information</h4></div><div> <div> <label>name:</label> <input id = "edit_name" value = "$ {goods.name}" name = "name"/> </div> <div> <babel> code: </label> <input ed = "edit_sn" name = "sn" value = "$ {goods.sn}"/> </div> <div> <babel> Weews: </label> <inpute ewew_ edit_ -weew_ -weew_ -weew_ -weew_ -weew_ edit_ edit_ -weew elew_> value = "$ {goods.weight}"/> </div> <div> <babel> Marketprice: </label> <input id = "edit_marketprice" name = "marketprice" value = "$ {goods.marketprice}"/> </div> <div> <babel> shopprice: </label> <input adIt_shopprice "=" hopprice: </label> <input idit_shopprice "=" hashprice: </label> <input Id = "edit_shopprice: value = "$ {goods.shopprice}"/> </div> <div> <babel> Unit: </label> <input Id = "edit_unit" name = "unit" value = "$ {goods.Unit}"/> </div> <div> <babel> number: </label> <input = "edit_numb </div> <div> <!-<form enctype = "multipart/form-data" method = "post" action = "/sell/imageUpload"> <input ype = "hidden" id = "edit_goods_sn" name = "sn" value = "$ {goods.sn}"/>-> image type = "file" id = "edit_ namage"/"/>"/> vimo vame = "edit_"/"/>-> image <input =" id = "edit_"/> "/>-> image <input =" "eDit_"/> "/>-> Image <Input =" ID ". type="submit" value="upload"/> <!--</form>--> </div></div><div> <button type="button" data-dismiss="modal">close</button> <input type="submit" id="edit_save" value="submit">Submit changes</input></div></form>//controller @RequestMapping(value = "/save",method = RequestMethod.post) public String SaveGoodSpage (@RequestParam (value = "id", обязательный = false) идентификатор строки,@requestParam (value = "name", обязательный = false) String name,@requestParam (value = "sn", обязательный = false) String sn, @RequestParam (value = number ", vally witre, vallespare = valuest = valuest = valuestespare = valuest = valuestespare = valuestespare = valuestespare = valuestespare = valuestespare) = "MarketPrice", обязательный = false) String MarketPrice, @requestParam (value = "shopprice", required = false) String shopprice, @RequestParam (value = "unit", обязательный = false) строковой единицу, @RequestParam (value = "detail", обязательный = false) строка, @requestParam (value = "file") multiplakfile file) {if (! BufferedOutputStream out = new BufferedOutputStream (new FileOutputStream (новый файл ("src/main/resources/static/images/product/" + sn + ".jpg"))); // Сохранить изображение в каталог out.write (file.getbytes ()); out.flush (); out.close (); String fileName = "/// Images /// Product ///" + sn + ".jpg"; /*USER.SETTUPIAN(FILENAME); //userrepository.save(user);//add пользователь*/} catch (filenotfoundexception e) {e.printstacktrace (); вернуть "ошибку загрузки" + e.getMessage (); } catch (ioException e) {e.printstackTrace (); вернуть "ошибка загрузки" + e.getMessage (); }} //...Ether Operations}Дополнение: существует ли разница между выражениями переменных и выражением звездочки?
Нет разницы между ними без учета контекста; Оценка синтаксиса звездочки выражается на выбранном объекте, а не в целом контексте, какой выбранное объект? Это значение родительской теги, следующим образом:
<div th: object = "$ {session.user}"> <p> имя: <span th: text = "*{firstname}"> sebastian </span>. </p> <p> Фамилия: <span th: text = "*{lastname}"> pepper </span>. th: text = "*{nationality}"> saturn </span>. </p> </div>Это точно эквивалентно:
<div th: object = "$ {session.user}"> <p> Имя: <span th: text = "$ {session.user.firstname}"> sebastian </span>. </p> <p> furnmame: <pan th: text = "$ {session.user.lastname}"> pepper </span> Th: text = "$ {session.user.nationality}"> saturn </span>. </p> </div>Конечно, знак доллара и синтаксис звездочки могут быть смешаны:
<div th: object = "$ {session.user}"> <p> Имя: <span th: text = "*{firstname}"> sebastian </span>. </p> <p> Фамилия: <span th: text = "$ {session.user.lastname}"> pepper </span>. th: text = "*{nationality}"> saturn </span>. </p> </div>Суммировать
Выше приведено оперативные шаги для загрузки изображения Thymeleaf Spring Boot. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!