日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC的表单标签库

發布時間:2025/3/20 javascript 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC的表单标签库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.form標簽

2.input標簽

3.password標簽

4.hidden標簽

5.textarea標簽

6.checkbox標簽

7.checkboxes標簽

8.radiobutton標簽

9.select、option、options標簽

10.errors標簽


1.form標簽

  • 一般情況下,通過 GET 請求獲取表單頁面,而通過POST 請求提交表單頁面,因此獲取表單頁面和提交表單頁面的 URL 是相同的。只要滿足該最佳條件的契約,form:form 標簽就無需通過 action 屬性指定表單提交的 URL

  • 可以通過 modelAttribute 屬性指定綁定的模型屬性,若沒有指定該屬性,則默認從 request 域對象中讀取command 的表單 bean,如果該屬性值也不存在,則會發生錯誤。

  • form標簽的屬性

屬性描述
modelAttributeform綁定的模型屬性名稱,默認為command
commandNameform綁定的模型屬性名稱,默認為command
acceptCharset定義服務器接受的字符編碼
cssClass定義要應用到被渲染的form元素CSS類
cssStyle定義要應用到被渲染的form元素CSS樣式
htmlEscapeboolean值,表示被渲染的值是否應該進行HTML轉義
  • SpringMVC提供了多個表單組件標簽,如form:input/、form:select/ 等,用以綁定表單字段的屬性值,它們的共有屬性如下:

    • path:表單字段,對應 html 元素的 name 屬性,支持級聯屬性

    • htmlEscape:是否對表單值的 HTML 特殊字符進行轉換,默認值為 true

    • cssClass:表單組件對應的 CSS樣式類名

    • cssErrorClass:表單組件的數據存在錯誤時,采取的 CSS樣式

2.input標簽

  • 簡單的使用案例:

registerForm.jsp

<!-- 如果不設置modelAttribute屬性,會取屬性名為command的對應屬性值 --> <form:form ?method="post" action="register" modelAttribute="user" >姓名:<form:input path="username"/><br/>性別:<form:input path="sex"/><br/>年齡:<form:input path="age"/><br/> </form:form>

User.java

public class User {private String username;private String sex;private Integer age;//... }

UserController.java

? ?@RequestMapping("/registerForm")public String registerForm(Model model){User user=new User("張三","男",20);//model.addAttribute("command",user);model.addAttribute("user",user);return "registerForm";}

3.password標簽

  • password標簽的用法跟input標簽相似,也能綁定表單數據,只是它生成的是一個密碼框,并且多了一個showPassword屬性

<form:password path="password"/>

4.hidden標簽

  • 用法跟input相似,也能綁定表單數據,只是它生成的是一個隱藏域

<form:hidden path="id"/>

5.textarea標簽

  • 是一個支持多行輸入的HTML元素

<form:textarea path="remark" rows="5" cols="20"/>

6.checkbox標簽

  • 會被渲染為一個類型為checkbox的普通HTML input標簽

checkboxForm.jsp

<!-- label為被渲染的復選框的值 --> <form:form method="post" action="checkboxForm" modelAttribute="user"><!-- 當綁定的為數組、List、Set時,checkbox的value屬性在綁定的列表數據中存在則為選中狀態 --><form:checkbox path="courses" value="Spring" label="Spring"/>&nbsp;<form:checkbox path="courses" value="SpringMVC" label="SpringMVC"/>&nbsp;<form:checkbox path="courses" value="MyBatis" label="MyBatis"/>&nbsp;<!-- 當綁定的是一個boolean數據時,true為選中,false為不選中 --><form:checkbox path="reader" value="true"/>已經閱讀相關協議 </form:form>

User1.java

public class User1 {private boolean reader;private List<String> courses;//... }

UserController.java

? ?@RequestMapping(value = "/checkboxForm",method = RequestMethod.GET)public String checkboxForm(Model model){User1 user=new User1();//設置boolean變量reader的值為true,頁面的checkbox復選框會被選中user.setReader(true);//為集合變量courses添加屬性,頁面對應的會被選中List<String> courses=new ArrayList<>();courses.add("SpringMVC");courses.add("MyBatis");user.setCourses(courses);model.addAttribute("user",user);return "checkboxForm";}

7.checkboxes標簽

屬性描述
items可以是一個 List、String[] 或 Map
itemLabel指定 checkbox的 value 值,可以是集合中 bean 的一個屬性值
itemValue指定 checkbox 的 label值,可以是集合中 bean 的一個屬性值
delimiter定義兩個input元素之間的分隔符,默認沒有分隔符

Department.java

//之后的頁面使用id作為value,name作為label public class Departement {private Integer id;private ?String name; }

Employee.java

public class Employee {private List<Departement> depts; }

UserController.java

? ?@RequestMapping(value = "/checkboxForm2",method = RequestMethod.GET)public String checkboxesForm(Model model){Employee employee=new Employee();Departement departement=new Departement(1,"開發部");List<Departement> list=new ArrayList<>();list.add(departement);employee.setDepts(list);//頁面展現的可供選擇的復選框內容deptListList<Departement> deptList=new ArrayList<>();deptList.add(departement);deptList.add(new Departement(2,"銷售部"));deptList.add(new Departement(3,"財務部"));model.addAttribute("employee",employee);model.addAttribute("deptList",deptList);return "checkboxForm2";}

checkboxForm2.jsp

<form:form modelAttribute="employee" method="post" action="checkboxForm2"><form:checkboxes path="depts" items="${deptList}" itemLabel="name" itemValue="id"/> </form:form>

8.radiobutton標簽

  • 會被渲染為一個類型為radio的普通HTML input標簽

StudentController.java

? ?@RequestMapping(value = "/radiobuttonFrom",method = RequestMethod.GET)public String radiobuttonForm(Model model){Student s=new Student("男");model.addAttribute("student",s);return "radiobuttonForm";}

Student.java

public class Student {private String sex; }

radiobuttonForm.jsp

<form:form action="radiobuttionForm" method="post" modelAttribute="student"><form:radiobutton path="sex" value="男"/>男<br/><form:radiobutton path="sex" value="女"/>女 </form:form>

9.select、option、options標簽

屬性描述
items用于生成option列表元素的對象的Collection、Map或者Array
itemLabelitem屬性中定義的對象屬性,為每個option提供label
itemValueitem屬性中定義的對象屬性,為每個option提供value
public class User {//部門編號private Integer deptId; }

UserController.java

? ?@RequestMapping(value = "/selectForm",method = RequestMethod.GET)public ?String selectForm(Model model){User user=new User(2);model.addAttribute("user",user);//頁面展現的可供選擇的select下拉框內容Map<Integer,String> deptMap=new HashMap();deptMap.put(1,"開發部");deptMap.put(2,"銷售部");deptMap.put(3,"財務部");model.addAttribute("deptMap",deptMap);return "selectForm";}

selectForm.jsp

<form:form modelAttribute="user" method="post" action="selectForm"><!-- items屬性可以自動加載后臺傳遞過來的數據 --><%--部門:<form:select path="deptId" items="${deptMap}"></form:select>--%><!-- 若沒有自動加載,可以使用option屬性手動添加 -->部門:<form:select path="deptId"><form:option value="1">開發部</form:option><form:option value="2">財務部</form:option><form:option value="3">銷售部</form:option></form:select> </form:form>

10.errors標簽

  • <form:errors path= “ *” /> :顯示表單所有的錯誤

  • <form:errors path= “ user*” /> :顯示所有以 user 為前綴的屬性對應的錯誤

  • <form:errors path= “ username” /> :顯示特定表單對象屬性的錯誤

?

總結

以上是生活随笔為你收集整理的SpringMVC的表单标签库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。