SpringMVC 表單標簽 & 處理靜態資源


使用 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 風格的資源URL 不希望帶 .html 或 .do 等后綴. 若將 DispatcherServlet 請求映射配置為 /, 則 Spring MVC 將捕獲 WEB 容器的所有請求, 包括靜態資源的請求,SpringMVC 會將他們當成一個普通請求處理, 因找不到對應處理器將導致錯誤

2. 解決: 在 SpringMVC 的配置文件中配置 <mvc:default-servlet-handler/>

	<!--  
		default-servlet-handler 將在 SpringMVC 上下文中定義一個 DefaultServletHttpRequestHandler,
		它會對進入 DispatcherServlet 的請求進行篩查, 如果發現是沒有經過映射的請求, 就將該請求交由 WEB 應用服務器默認的 
		Servlet 處理. 如果不是靜態資源的請求,才由 DispatcherServlet 繼續處理

		一般 WEB 應用服務器默認的 Servlet 的名稱都是 default.
		若所使用的 WEB 服務器的默認 Servlet 名稱不是 default,則需要通過 default-servlet-name 屬性顯式指定
	-->
	<mvc:default-servlet-handler/>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM