thymeleaf介紹
簡單說, Thymeleaf 是一個跟Velocity、FreeMarker 類似的模板引擎,它可以完全替代JSP 。相較與其他的模板引擎,它有如下三個極吸引人的特點:
1.Thymeleaf 在有網絡和無網絡的環境下皆可運行,即它可以讓美工在瀏覽器查看頁面的靜態效果,也可以讓程序員在服務器查看帶數據的動態頁面效果。這是由於它支持html 原型,然後在html 標籤裡增加額外的屬性來達到模板+數據的展示方式。瀏覽器解釋html 時會忽略未定義的標籤屬性,所以thymeleaf 的模板可以靜態地運行;當有數據返回到頁面時,Thymeleaf 標籤會動態地替換掉靜態內容,使頁面動態顯示。
2.Thymeleaf 開箱即用的特性。它提供標準和spring標準兩種方言,可以直接套用模板實現JSTL、 OGNL表達式效果,避免每天套模板、該jstl、改標籤的困擾。同時開發人員也可以擴展和創建自定義的方言。
3.Thymeleaf 提供spring標準方言和一個與SpringMVC 完美集成的可選模塊,可以快速的實現表單綁定、屬性編輯器、國際化等功能。
form方式上傳:
//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> <label>code:</label> <input id="edit_sn" name="sn" value="${goods.sn}" /> </div><div> <label>weight:</label> <input id="edit_weight" name="weight" value="${goods.weight}" /> </div><div> <label>marketPrice:</label> <input id="edit_marketPrice" name="marketPrice" value="${goods.marketPrice}" /> </div><div> <label>shopPrice:</label> <input id="edit_shopPrice" name="shopPrice" value="${goods.shopPrice}" /> </div><div> <label>unit:</label> <input id="edit_unit" name="unit" value="${goods.unit}" /> </div><div> <label>number:</label> <input id="edit_number" name="number" value="${goods.number}" /> </div> <div> <label>detail:</label> <textarea id="edit_detail" name="detail" value="${goods.detail}" /> </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<input type="file" id="edit_image" name="file"/> <input type="submit" value="upload"/> <!--</form>--> </div></div><div> <button type="button" data-dismiss="modal">close</button> <input type="submit" id="edit_save" value="submit">提交更改</input></div></form>//controller @RequestMapping(value = "/save",method = RequestMethod.POST) public String saveGoodsPage(@RequestParam(value = "id",required=false) String id,@RequestParam(value = "name",required=false) String name,@RequestParam(value = "sn",required=false) String sn, @RequestParam(value = "number",required=false) String number,@RequestParam(value = "weight",required=false) String weight, @RequestParam(value = "marketPrice",required=false) String marketPrice,@RequestParam(value = "shopPrice",required=false) String shopPrice, @RequestParam(value = "unit",required=false) String unit, @RequestParam(value = "detail",required=false) String detail,@RequestParam (value="file")MultipartFile file ) { if (!file.isEmpty()) { try { BufferedOutputStream out = new BufferedOutputStream( new FileOutputStream(new File("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);//增加用戶*/ } catch (FileNotFoundException e) { e.printStackTrace(); return "upload error," + e.getMessage(); } catch (IOException e) { e.printStackTrace(); return "upload error" + e.getMessage(); } } //...其他操作}補充:變量表達式和星號表達有什麼區別嗎?
如果不考慮上下文的情況下,兩者沒有區別;星號語法評估在選定對像上表達,而不是整個上下文什麼是選定對象?就是父標籤的值,如下:
<div th:object="${session.user}"> <p>Name: <span th:text="*{firstName}">Sebastian</span>.</p> <p>Surname: <span th:text="*{lastName}">Pepper</span>.</p> <p>Nationality: <span th:text="*{nationality}">Saturn</span>.</p> </div>這是完全等價於:
<div th:object="${session.user}"> <p>Name: <span th:text="${session.user.firstName}">Sebastian</span>.</p> <p>Surname: <span th:text="${session.user.lastName}">Pepper</span>.</p> <p>Nationality: <span th:text="${session.user.nationality}">Saturn</span>.</p> </div>當然,美元符號和星號語法可以混合使用:
<div th:object="${session.user}"> <p>Name: <span th:text="*{firstName}">Sebastian</span>.</p> <p>Surname: <span th:text="${session.user.lastName}">Pepper</span>.</p> <p>Nationality: <span th:text="*{nationality}">Saturn</span>.</p> </div>總結
以上所述是小編給大家介紹的spring boot thymeleaf 圖片上傳web項目根目錄操作步驟,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!