{"id":545,"date":"2023-03-23T21:19:42","date_gmt":"2023-03-23T13:19:42","guid":{"rendered":""},"modified":"2023-03-23T21:19:42","modified_gmt":"2023-03-23T13:19:42","slug":"Spring MVC Tiles\u793a\u4f8b","status":"publish","type":"post","link":"https:\/\/bianchenghao6.com\/545.html","title":{"rendered":"Spring MVC Tiles\u793a\u4f8b"},"content":{"rendered":"
\n
\r\n <!-- https:\/\/mvnrepository.com\/artifact\/org.springframework\/spring-webmvc -->\r\n<dependency>\r\n <groupId>org.springframework<\/groupId>\r\n <artifactId>spring-webmvc<\/artifactId>\r\n <version>5.1.1.RELEASE<\/version>\r\n<\/dependency>\r\n <!-- https:\/\/mvnrepository.com\/artifact\/javax.servlet\/javax.servlet-api -->\r\n<dependency> \r\n <groupId>javax.servlet<\/groupId> \r\n <artifactId>servlet-api<\/artifactId> \r\n <version>3.0-alpha-1<\/version> \r\n<\/dependency>\r\n <!-- https:\/\/mvnrepository.com\/artifact\/javax.servlet\/jstl -->\r\n<dependency>\r\n <groupId>javax.servlet<\/groupId>\r\n <artifactId>jstl<\/artifactId>\r\n <version>1.2<\/version>\r\n<\/dependency>\r\n<!-- https:\/\/mvnrepository.com\/artifact\/org.apache.tomcat\/tomcat-jasper -->\r\n<dependency>\r\n <groupId>org.apache.tomcat<\/groupId>\r\n <artifactId>tomcat-jasper<\/artifactId>\r\n <version>9.0.12<\/version>\r\n<\/dependency>\r\n <!-- https:\/\/mvnrepository.com\/artifact\/org.apache.tiles\/tiles-jsp -->\r\n<dependency>\r\n <groupId>org.apache.tiles<\/groupId>\r\n <artifactId>tiles-jsp<\/artifactId>\r\n <version>3.0.5<\/version>\r\n<\/dependency>\r\n \r\n <!-- https:\/\/mvnrepository.com\/artifact\/org.apache.tiles\/tiles-servlet -->\r\n<dependency>\r\n <groupId>org.apache.tiles<\/groupId>\r\n <artifactId>tiles-servlet<\/artifactId>\r\n <version>3.0.5<\/version>\r\n<\/dependency>\r\n <!-- https:\/\/mvnrepository.com\/artifact\/org.apache.tiles\/tiles-core -->\r\n<dependency>\r\n <groupId>org.apache.tiles<\/groupId>\r\n <artifactId>tiles-core<\/artifactId>\r\n <version>3.0.5<\/version>\r\n<\/dependency>\r\n <!-- https:\/\/mvnrepository.com\/artifact\/org.apache.tiles\/tiles-el -->\r\n<dependency>\r\n <groupId>org.apache.tiles<\/groupId>\r\n <artifactId>tiles-el<\/artifactId>\r\n <version>3.0.5<\/version>\r\n<\/dependency>\r\n<\/pre>\n<\/code>\n <\/div>\n
2\u3001\u521b\u5efabean\u7c7b<\/h3>\n\n Contact.java <\/strong>\n <\/div>\n\n\r\npackage <\/span>com.lidihuo.form;\r\npublic <\/span>class <\/span>Contact {\r\n private <\/span>String firstname;\r\n private <\/span>String lastname;\r\n private <\/span>String email;\r\n private <\/span>String telephone;\r\n \r\n public <\/span>String getEmail() {\r\n return <\/span>email;\r\n }\r\n public <\/span>String getTelephone() {\r\n return <\/span>telephone;\r\n }\r\n public void <\/span>setEmail(String email) {\r\n this<\/span>.email = email;\r\n }\r\n public void <\/span>setTelephone(String telephone) {\r\n this<\/span>.telephone = telephone;\r\n }\r\n public <\/span>String getFirstname() {\r\n return <\/span>firstname;\r\n }\r\n public <\/span>String getLastname() {\r\n return <\/span>lastname;\r\n }\r\n public void <\/span>setFirstname(String firstname) {\r\n this<\/span>.firstname = firstname;\r\n }\r\n public void <\/span>setLastname(String lastname) {\r\n this<\/span>.lastname = lastname;\r\n }\r\n \r\n}\r\n<\/pre>\n<\/code>\n <\/div>\n
3\u3001\u521b\u5efa\u63a7\u5236\u5668\u7c7b<\/h3>\n\n HelloWorldController.java <\/strong>\n <\/div>\n\n\r\npackage <\/span>com.lidihuo.controller;\r\nimport org.springframework.stereotype.Controller;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.web.bind.annotation.RequestMapping;\r\n@Controller\r\npublic <\/span>class <\/span>HelloWorldController {\r\n @RequestMapping(\"\/hello\"<\/span>)\r\n public <\/span>String helloWorld(Model m) {\r\n String message = \"Hello World, Spring MVC @ lidihuo\"<\/span>;\r\n m.addAttribute<\/span>(\"message\"<\/span>, message);\r\n return <\/span>\"hello\"<\/span>; \r\n }\r\n}\r\n<\/pre>\n<\/code>\n <\/div>\n
\n ContactController.java <\/strong>\n <\/div>\n\n\r\npackage <\/span>com.lidihuo.controller;\r\nimport org.springframework.stereotype.Controller;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.ModelAttribute;\r\nimport org.springframework.web.bind.annotation.RequestMapping;\r\nimport org.springframework.web.bind.annotation.RequestMethod;\r\nimport org.springframework.web.bind.annotation.SessionAttributes;\r\nimport com.lidihuo.form.Contact;\r\n@Controller\r\n@SessionAttributes\r\npublic <\/span>class <\/span>ContactController {\r\n @RequestMapping(value = \"\/addContact\"<\/span>, method = RequestMethod.POST)\r\n public <\/span>String addContact(@ModelAttribute(\"contact\"<\/span><\/span>) Contact contact, BindingResult result) {\r\n \/\/write the code here to add contact\r\n return <\/span>\"redirect:contact.html\"<\/span>;\r\n }\r\n \r\n @RequestMapping(\"\/contact\"<\/span>)\r\n public <\/span>String showContacts(Model m) {\r\n m.addAttribute<\/span>(\"command\"<\/span>, new <\/span>Contact());\r\n return <\/span>\"contact\";\r\n }\r\n}\r\n<\/pre>\n<\/code>\n <\/div>\n
4\u3001\u5728web.xml\u6587\u4ef6\u4e2d\u63d0\u4f9b\u63a7\u5236\u5668\u7684\u6761\u76ee<\/h3>\n\n web.xml <\/strong>\n <\/div>\n\n\r\n<?xml version=\"1.0\"<\/span> encoding=\"UTF-8\"<\/span>?>\r\n<web-app xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span> xmlns=\"http:\/\/java.sun.com\/xml\/ns\/javaee\"<\/span> xsi:schemaLocation=\"http:\/\/java.sun.com\/xml\/ns\/javaee http:\/\/java.sun.com\/xml\/ns\/javaee\/web-app_2_5.xsd\"<\/span> id=\"WebApp_ID\"<\/span> version=\"2.5\"<\/span>>\r\n <display-name>SpringTiles<\/display-name>\r\n <welcome-file-list>\r\n <welcome-file>index.jsp<\/welcome-file>\r\n <\/welcome-file-list>\r\n <servlet>\r\n <servlet-name>spring<\/servlet-name>\r\n <servlet-class>\r\n org.springframework.web.servlet.DispatcherServlet\r\n <\/servlet-class>\r\n <load-on-startup>1<\/load-on-startup>\r\n <\/servlet>\r\n <servlet-mapping>\r\n <servlet-name>spring<\/servlet-name>\r\n <url-pattern>*.html<\/url-pattern>\r\n <\/servlet-mapping>\r\n<\/web-app>\r\n<\/pre>\n<\/code>\n <\/div>\n
5\u3001\u5728xml\u6587\u4ef6\u4e2d\u5b9a\u4e49Bean <\/h3>\n\n spring-servlet.xml <\/strong>\n <\/div>\n\n\r\n<beans xmlns=\"http:\/\/www.springframework.org\/schema\/beans\"<\/span>\r\n xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span>\r\n xmlns:p=\"http:\/\/www.springframework.org\/schema\/p\"<\/span>\r\n xmlns:context=\"http:\/\/www.springframework.org\/schema\/context\"<\/span>\r\n xsi:schemaLocation=\"http:\/\/www.springframework.org\/schema\/beans\r\n http:\/\/www.springframework.org\/schema\/beans\/spring-beans-3.0.xsd\r\n http:\/\/www.springframework.org\/schema\/context\r\n http:\/\/www.springframework.org\/schema\/context\/spring-context-3.0.xsd\">\r\n<context:annotation-config \/>\r\n<context:component-scan base-package=\"com.lidihuo.controller\"<\/span> \/>\r\n<bean id=\"viewResolver\"<\/span> class=\"org.springframework.web.servlet.view.tiles3.TilesViewResolver\"<\/span>\/>\r\n<bean id=\"tilesConfigurer\"<\/span> class=\"org.springframework.web.servlet.view.tiles3.TilesConfigurer\"<\/span>>\r\n<property name=\"definitions\"<\/span>>\r\n<list>\r\n<value>\/WEB-INF\/tiles.xml<\/value>\r\n<\/list>\r\n<\/property>\r\n<\/bean>\r\n<\/beans>\r\n<\/pre>\n<\/code>\n <\/div>\n
6\u3001\u63d0\u4f9btile.xml\u6587\u4ef6<\/h3>\n\n tiles.xml <\/strong>\n <\/div>\n\n\r\n<?xml version=\"1.0\"<\/span> encoding=\"UTF-8\"<\/span> ?>\r\n<!DOCTYPE tiles-definitions PUBLIC\r\n \"-\/\/Apache Software Foundation\/\/DTD Tiles Configuration 2.0\/\/EN\"<\/span>\r\n \"http:\/\/tiles.apache.org\/dtds\/tiles-config_2_0.dtd\"<\/span>>\r\n<tiles-definitions>\r\n <definition name=\"base.definition\"<\/span><\/span><\/span>\r\n template=\"\/WEB-INF\/jsp\/layout.jsp\"<\/span>>\r\n <put-attribute name=\"title\"<\/span><\/span><\/span> value=\"\"<\/span><\/span> \/>\r\n <put-attribute name=\"header\"<\/span> value=\"\/WEB-INF\/jsp\/header.jsp\"<\/span> \/>\r\n <put-attribute name=\"menu\"<\/span> value=\"\/WEB-INF\/jsp\/menu.jsp\"<\/span> \/>\r\n <put-attribute name=\"body\"<\/span><\/span><\/span> value=\"\" \/>\r\n <put-attribute name=\"footer\"<\/span> value=\"\/WEB-INF\/jsp\/footer.jsp\"<\/span> \/>\r\n <\/definition>\r\n <definition name=\"contact\"<\/span> extends=\"base.definition\">\r\n <put-attribute name=\"title\" value=\"Contact Manager\"<\/span> \/>\r\n <put-attribute name=\"body\" value=\"\/WEB-INF\/jsp\/contact.jsp\"<\/span> \/>\r\n <\/definition>\r\n <definition name=\"hello\"<\/span> extends=\"base.definition\">\r\n <put-attribute name=\"title\" value=\"Hello Spring MVC\"<\/span> \/>\r\n <put-attribute name=\"body\" value=\"\/WEB-INF\/jsp\/hello.jsp\"<\/span> \/>\r\n <\/definition>\r\n<\/tiles-definitions>\r\n<\/pre>\n<\/code>\n <\/div>\n
7\u3001\u521b\u5efa\u8bf7\u6c42\u7684\u9875\u9762<\/h3>\n\n index.jsp <\/strong>\n <\/div>\n\n\r\n<a href=\"hello.html\"<\/span>>Hello Spring<\/a> | \r\n<a href=\"contact.html\"<\/span>>Contact<\/a>\r\n<\/pre>\n<\/code>\n <\/div>\n
8\u3001\u521b\u5efa\u5176\u4ed6\u89c6\u56fe\u7ec4\u4ef6<\/h3>\n\n hello.jsp <\/strong>\n <\/div>\n\n\r\n<html> \r\n<head> \r\n <title>Spring MVC Example<\/title> \r\n<\/head> \r\n<body> \r\n<h1>Welcome to Spring MVC<\/h1> \r\n <p>Message is: ${message}<\/p> \r\n<\/body> \r\n<\/html> \r\n<\/pre>\n<\/code>\n <\/div>\n
\n contact.jsp <\/strong>\n <\/div>\n\n\r\n<%@taglib uri=\"http:\/\/www.springframework.org\/tags\/form\"<\/span> prefix=\"form\"<\/span>%> \r\n<html> \r\n<head> \r\n <title>Spring Tiles Contact Form<\/title> \r\n<\/head> \r\n<body> \r\n<h2>Contact Manager<\/h2> \r\n<form:form method=\"post\"<\/span> action=\"addContact.html\"<\/span>> \r\n \r\n <table> \r\n <tr> \r\n <td><form:label path=\"firstname\"<\/span><\/span>>First Name<\/form:label><\/td> \r\n <td><form:input path=\"firstname\" \/><\/td> \r\n <\/tr> \r\n <tr> \r\n <td><form:label path=\"lastname\"<\/span><\/span><\/span><\/span>>Last Name<\/form:label><\/td> \r\n <td><form:input path=\"lastname\" \/><\/td> \r\n <\/tr> \r\n <tr> \r\n <td><form:label path=\"lastname\">Email<\/form:label><\/td> \r\n <td><form:input path=\"email\"<\/span> \/><\/td> \r\n <\/tr> \r\n <tr> \r\n <td><form:label path=\"lastname\">Telephone<\/form:label><\/td> \r\n <td><form:input path=\"telephone\"<\/span> \/><\/td> \r\n <\/tr> \r\n <tr> \r\n <td colspan=\"2\"<\/span>> \r\n <input type=\"submit\"<\/span> value=\"Add Contact\"<\/span>\/> \r\n <\/td> \r\n <\/tr> \r\n<\/table> \r\n \r\n<\/form:form> \r\n<\/body> \r\n<\/html>\r\n<\/pre>\n<\/code>\n <\/div>\n
\n header.jsp <\/strong>\n <\/div>\n\n\r\n<h2>Header<\/h2> \r\n<hr\/> \r\n<\/pre>\n<\/code>\n <\/div>\n
\n footer.jsp <\/strong>\n <\/div>\n\n\r\n<hr\/> \r\n<p>Copyright 2010-2014 lidihuo.com.<\/p> \r\n<\/pre>\n<\/code>\n <\/div>\n
\n menu.jsp <\/strong>\n <\/div>\n\n\r\n<p>Menu 1<\/p> \r\n<p>Menu 2<\/p> \r\n<\/pre>\n<\/code>\n <\/div>\n
\n layout.jsp <\/strong>\n <\/div>\n\n\r\n<%@ taglib uri=\"http:\/\/tiles.apache.org\/tags-tiles\"<\/span> prefix=\"tiles\"<\/span>%> \r\n<!DOCTYPE HTML public <\/span>\"-\/\/W3C\/\/DTD HTML 4.01 Transitional\/\/EN\"<\/span> \r\n\"http:\/\/www.w3.org\/TR\/html4\/loose.dtd\"<\/span>> \r\n<html> \r\n<head> \r\n<meta http-equiv=\"Content-Type\"<\/span> content=\"text\/html; charset=UTF-8\"<\/span>> \r\n<title><tiles:insertAttribute name=\"title\"<\/span> ignore=\"true\"<\/span> \/><\/title> \r\n<\/head> \r\n<body> \r\n <div><tiles:insertAttribute name=\"header\"<\/span> \/><\/div> \r\n <div style=\"float<\/span>:left;padding:10px;width:15%;\"<\/span>><tiles:insertAttribute name=\"menu\"<\/span> \/><\/div> \r\n <div style=\"float<\/span>:left;padding:10px;width:80%;border-left:1px solid pink;\"<\/span>> \r\n <tiles:insertAttribute name=\"body\"<\/span> \/><\/div> \r\n <div style=\"clear:both\"<\/span>><tiles:insertAttribute name=\"footer\"<\/span> \/><\/div> \r\n \r\n<\/body> \r\n<\/html> \r\n<\/pre>\n<\/code>\n <\/div>\n
<\/body>
\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Spring MVC Tiles\u793a\u4f8bzh-cn","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[105],"tags":[],"class_list":["post-545","post","type-post","status-publish","format-standard","hentry","category-bc_spring_jc"],"_links":{"self":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts\/545"}],"collection":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/comments?post=545"}],"version-history":[{"count":0,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts\/545\/revisions"}],"wp:attachment":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/media?parent=545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/categories?post=545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/tags?post=545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}