Теги формы, которые поставляются с Spring MVC, относительно просты, и часто необходимо выполнять с помощью EL и JSTL.
Вот относительно простая функция страницы подчинения формы:
1. Пользовательская модель
пакет com.my.controller.bean; import java.util.date; import java.util.list; импорт javax.validation.constraints.future; импорт javax.validation.constraints.max; import javax.validation.constraints.min; импорт javax.validation.constraints.constraints.min; import javax.validation.constraintation.constraints.min; импорт. org.hibernate.validator.constraints.email; import org.hibernate.validator.constraints.length; import org.hibernate.validator.constraints.notempty; Пользователь открытого класса {Private Long ID; @Length (min = 2, max = 50, message = "range имени имени пользователя = 2-50") частное имя строки; @Future (message = "время не может быть меньше, чем сегодня") частная дата Create -Time; @Notempty (message = "Заказчик не может быть пустым") частный список <клиент> клиенты; @Notnull (сообщение = "Девушка не может быть пустой") частная логическая девушка; частная строка [] cbx; @Notnull (message = "Возраст не может быть null") @min (value = 18, message = "Минимум 18 лет") @max (значение = 100, сообщение = "максимум 100 лет") частный возраст; @Email (message = "формат электронной почты неверен") частная строка электронной почты; public long getId () {return id; } public void setId (long id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public date getCreatetime () {return createTime; } public void setCreatetime (дата CreateTime) {this.createTime = createTime; } public List <Cultive> getCustomers () {return клиентов; } public void setCustomers (list <Customer> клиенты) {this.customers = клиенты; } public boolean isgirl () {return girl; } public void setgirl (логическая девушка) {this.girl = Girl; } public String [] getCbx () {return cbx; } public void setCbx (String [] cbx) {this.cbx = cbx; } public int getage () {return Age; } public void setage (int age) {this.age = age; } public String getEmail () {return Email; } public void setEmail (string email) {this.email = email; }} 2. Контроллер
пакет com.my.controller; import java.util.arraylist; import java.util.date; import java.util.list; import javax.validation.valid; импорт org.springframework.stepolype.controller; импорт org.spramework.validation.bindingResult; org.springframework.validation.fielderror; import org.springframework.web.bind.nantation.modelattribute; импорт org.springframework.web.bindation.RequestMapping; импорт org.spramework.web.bindation.requestmathp; org.springframework.web.servlet.modelandView; import com.my.controller.bean.customer; import com.my.controller.bean.user;@controller@requestmapping (value = "/post") public class testpostcontroller {private Static starice <user> usters = new arraylist <);); {// ----------------------------------------------- // 设置 Entity // ------------------------------------------------------------------------------------- users.add (new user ()); Пользователь пользователь = users.get (0); user.setid (1); user.setname ("robin"); user.setCreatetime (new Date ()); user.setgirl (true); user.setcbx (new String [] {"1", "2", "3"}); user.setage (18); user.setemail ("[email protected]"); user.setCustomers (новый ArrayList <Customer> ()); Клиент клиент1 = новый клиент (); customer1.setid (1); Customer1.setCompany ("Компания - 1"); customer1.setCreatetime (new Date ()); customer1.setuser (пользователь); user.getCustomers (). Add (Customer1); Клиент клиент2 = новый клиент (); customer2.setid (1); Customer2.setCompany («Компания - 2»); customer2.setCreatetime (новая дата ()); customer2.setuser (пользователь); user.getCustomers (). Add (Customer2); } @Requestmapping public modelandView index () {modelandView view = new ModelAndView ("testpost/index"); view.addobject («Пользователи», пользователи); вернуть представление; } @RequestMapping (value = "/adduser", method = requestMethod.post) public modelandView adduser (@modelattribute @valid Пользователь пользователя, BindingResult result) {modelandView view = new ModelAndView ("redirect:/post"); if (result.haserrors ()) {list <fielderror> ошибки = result.getfielderrors (); for (fielderror err: errors) {System.out.println ("ObjectName:" + err.getObjectName () + "/tfieldName:" + err.getfield () + "/tfieldValue:" + err.getRecteDValue () + "/tmessage:" + err.getDefaultMessage ()); } view.addobject ("Пользователи", пользователи); вернуть представление; } user.setId (users.size () + 1); user.getCustomers (). get (0) .setId (1); user.getCustomers (). get (0) .setUser (пользователь); users.add (пользователь); view.addobject («Пользователи», пользователи); вернуть представление; }} 3. Посмотреть
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <%@ page import = "com.my.controller.bean.*"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" http://java.sun.com/jsp/jstl ". uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn"%> <%@ taglib prefix = "st" uri = "http://www.springframework.org/tags" %> < %@ taglib uri = "http://www.springframework.org/tags/form" prefix = "sf" %> <! Doctpe html public "-// w3c // dtd html html en"/ene ". "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> index </title> </head> <body> <fmt: setl altain ="/Zhale = " action = "<st: url value ="/post/adduser "> </st: url>" method = "post"> <c: foreach elects = "$ {users}" var = "user"> user: $ {user.name} <br/> Создание времени: <fmt: formatdate value = "$ {user.createmem test="${user.girl}">Yes</c:when> <c:when test="${!user.girl}">No</c:when> <c:otherwise>N/A</c:otherwise> </c:choose> <br/> Checkboxs: <c:forEach items="${user.cbx}" var="item"> ${item}, </c:forEach> <br/> Возраст: $ {user.age} <br/> e-mail: $ {user.email} <br/> <hr/> <table> <thead> <tr style = "text-align: left; Фоно-цвета: #EEE; "> <Th> имя компании </th> <Th> пользователь </th> <T.> Создать время </th> </tr> </thead> <tbody> <c: foreach elects =" $ {user.customers} "var =" item "> <tr> <td> {item.company} </td> <td> $ {itmer. <Td> <fmt: formatdate value = "$ {item.createTime}" pattern = "yyyy-mm-dd"/> </td> </td> </c: foreach> </tbody> </table> <hr/> </c: for name inement: <input = "text" name = "name" = "name" => </c: for name: <input = "name =" name "=" name "=> <br.> </> </c:" inpure ". name = "Girl" id = "isgirl" value = "true" checked = "checked"/> <label для = "isgirl"> yes </label> <input type = "radio" name = "Girl" id = "nogirl" value = "false"/> <label for = "nogirl"> no </label> <br /> checkbox: <input type = "name" "cbbx". value = "1" /> <label for = "cbx1"> 1 < /label> <input type = "fackbox" name = "cbx" id = "cbx2" value = "2" /> <label for = "cbx2"> 2 < /label> <input type = "fackbox" = "cbx" id = "cbx3" = "3" for="cbx3">3</label> <br/> Age:<input type="text" name="age" id="age" /><br/> E-mail:<input type="text" name="email" id="email" /><br/> Create time: <input type="text" name="createTime" id="createTime" /><br/> Company: <input type="text" name = "Clifits [0] .company" id = "Customs [0] .company"/> <br/> <input type = "prope" value = "add"/> <sf: ошибки path = "*"> </sf: ошибки> </form> <hr // </body> </html> </sf: ошибки> </form> <hr // </body> </html>4. Результаты теста
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.