八、SpringMVC--SpringMVC 表單標籤 和處理靜態資源

Adela0916發表於2020-12-11

使用 Spring 的表單標籤

通過SpringMVC的表單標籤可以實現將模型資料中的屬性和HTML表單元素相繫結,以實現表單資料更便捷編輯和表單值回顯

form標籤

  • 一般情況下,通過GET請求獲取表單頁面,而通過POST請求提交表單頁面,因此獲取表單頁面和提交表單頁面的URL是相同的。只要滿足該最佳條件的契約,**form:form**標籤就無需通過action屬性指定表單提交的URL。
  • 可以通過modelAttribute屬性指定繫結的模型資料,若沒有指定該屬性,則預設從request域物件中讀取command的表單bean,如果概述性質也不存在,則會發生錯誤。

表單標籤

  • SpringMVC提供了多個表單元件標籤,如form:input/、form:select/等,泳衣繫結表單欄位的屬性值,他們的共有屬性如下:
    -path:表單欄位,對應html元素的name屬性,支援級聯屬性。
    -htmlEscape:是否對錶單值的HTML特殊字元進行轉換,預設值為true
    -cssClass:表單元件對應的CSS樣式類名
    -cssErrorClass:表單元件的資料存在錯誤時,採取的css樣式。

  • form:input、form:password、form:hidden、form:textarea:對應 HTML 表單的 text、password、hidden、textarea標籤。

  • form:radiobutton:單選框元件標籤,當表單 bean 對應的屬性值和 value 值相等時,單選框被選中。

  • form:radiobuttons:單選框組標籤,用於構造多個單選框:
    -items:可以是一個List、String[]或Map
    -itemValue:指定radio的value值。可以是集合中bean的一個屬性值。
    -itemLabel:指定radio的label值
    -delimiter:多個單選框可以通過delimiter指定分割符。

  • form:checkbox:核取方塊元件。用於構造單個核取方塊。

  • form:checkboxs:用於構造多個核取方塊。使用方式同form:radiobuttons 標籤。

  • form:select:用於構造下拉框元件。使用方式同form:radiobuttons 標籤。

  • form:option:下拉框選項元件標籤。使用方式同form:radiobuttons 標籤。

  • form:errors:顯示錶單元件或資料校驗所對應的錯誤
    - <form:errors path= “ ” /> :顯示錶單所有的錯誤。
    -<form:errors path= “ user
    ” /> :顯示所有以 user 為字首的屬性對應的錯誤。
    -<form:errors path= “ username” /> :顯示特定表單物件屬性的錯誤。

處理靜態資源

  1. 優雅的REST風格的資源UTL不希望帶.html或.do等字尾。
  2. 獲獎DispatchServlet請求對映配置為/,則SpringMVC將捕獲WEB容器的所有請求,包括靜態資源的請求,SpringMVC會將他們當成一個普通的請企業處理,因找不到對應處理器將導致錯誤。
  3. 可以在SpringMVC配置檔案中配置mvc:default-servlet-handler/的方式解決靜態資源的問題:
    -mvc:default-servlet-handler/將在SpringMVC上下文中定義一個DefaultServletHttpRequestHandler,它會對進入DispatcherServlet的請求進行篩查,如果發現是沒有經過對映的請求,就將該請求交由WEB應用伺服器預設的Servlet處理,如果不是靜態資源的請求,才由DispatcherServlet繼續處理。
    -一般WEB應用伺服器預設的Servlet的名稱都是default。若使用的WEB伺服器的預設Servlet名稱不是default,則需要通過default-servlet-name屬性顯示指定。

相關文章