diff --git a/org.springframework.samples.petclinic/pom.xml b/org.springframework.samples.petclinic/pom.xml index e383597061c7a111362c4acd1ff6db18463659a4..808c5f6f66f628000776dff795c20dcefb03dd63 100644 --- a/org.springframework.samples.petclinic/pom.xml +++ b/org.springframework.samples.petclinic/pom.xml @@ -22,11 +22,41 @@ <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> + <dependency> + <groupId>commons-fileupload</groupId> + <artifactId>commons-fileupload</artifactId> + <version>1.2.1</version> + </dependency> + <!-- Needed for fileupload --> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>1.3.2</version> + </dependency> + <!-- Embedded database --> + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.8.0.7</version> + </dependency> + <!-- Composite-view & layout framework --> + <dependency> + <groupId>org.apache.tiles</groupId> + <artifactId>tiles-core</artifactId> + <version>2.0.7</version> + </dependency> + <dependency> + <groupId>org.apache.tiles</groupId> + <artifactId>tiles-jsp</artifactId> + <version>2.0.7</version> + </dependency> + <!-- Clean URLs with JSPs --> <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>3.1.0</version> - </dependency> + </dependency> + <!-- Spring Framework Project libraries --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> @@ -57,6 +87,12 @@ <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> + <!-- Spring JavaScript Project --> + <dependency> + <groupId>org.springframework.webflow</groupId> + <artifactId>spring-js</artifactId> + <version>2.0.7.RELEASE</version> + </dependency> <!-- Container-provided dependencies--> <dependency> <groupId>javax.servlet</groupId> diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/home.jsp b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/home.jsp index b37beeda48d6c365b4370e5d42626048a3793f45..08ab758262214336d69f03caf6776c27aef93584 100644 --- a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/home.jsp +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/home.jsp @@ -1,12 +1,6 @@ <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ page session="false" %> -<html> -<head> - <title>Welcome</title> -</head> -<body> -<h1> - Congratulations! You're running Spring! -</h1> -</body> -</html> +<h2>Welcome to the Spring 3 Petclinic</h2> +<img id="petlogo" src="${pageContext.request.contextPath}/resources/images/pets.png" /> +<p> + This sample application demonstrates many of the features Spring provides for web application development. +</p> \ No newline at end of file diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/mvc-config.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/mvc-config.xml index c9833d68716f5a57c31333e044617abd3fb6b355..15466b8fc0613ca7caeb68f678d5d26842193217 100644 --- a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/mvc-config.xml +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/spring/mvc-config.xml @@ -28,9 +28,21 @@ <!-- VIEW RESOLUTION AND RENDERING --> <!-- Resolves view names to protected .jsp resources within the /WEB-INF directory --> + <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"> + <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" /> + </bean> + <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/"/> <property name="suffix" value=".jsp"/> </bean> + <!-- Configures Tiles 2 --> + <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" /> + + <!-- Configures Apache Commons Fileupload --> + <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> + <property name="maxUploadSize" value="10000000"/> + </bean> + </beans> diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/urlrewrite.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/urlrewrite.xml index 26672b6cddd95e7ca34d1a3d1d73eb55e8ebe831..9e3a4589bce82591b831427564d3d50c87e045f3 100644 --- a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/urlrewrite.xml +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/urlrewrite.xml @@ -1,6 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd"> <urlrewrite default-match-type="wildcard"> + <rule> + <from>/resources/**</from> + <to>/resources/$1</to> + </rule> <rule> <from>/**</from> <to>/app/$1</to> diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/web.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/web.xml index 95239d4a2106f3e29cc91bd114187617cb235ac1..8238f5100d6f16c3cd0b030db7d627ed5a2f82db 100644 --- a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/web.xml +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/web.xml @@ -32,5 +32,18 @@ <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> <url-pattern>/app/*</url-pattern> </servlet-mapping> + + <!-- Serves static resource content from the webapp root & .jar files such as spring-js.jar --> + <servlet> + <servlet-name>Resources Servlet</servlet-name> + <servlet-class>org.springframework.js.resource.ResourceServlet</servlet-class> + <load-on-startup>0</load-on-startup> + </servlet> + + <!-- Map all /resources requests to the Resource Servlet for handling --> + <servlet-mapping> + <servlet-name>Resources Servlet</servlet-name> + <url-pattern>/resources/*</url-pattern> + </servlet-mapping> </web-app> diff --git a/org.springframework.samples.petclinic/src/main/webapp/images/banner-graphic.png b/org.springframework.samples.petclinic/src/main/webapp/images/banner-graphic.png new file mode 100644 index 0000000000000000000000000000000000000000..e6d01d5885266efbf4dc99431576a13dee5725e4 Binary files /dev/null and b/org.springframework.samples.petclinic/src/main/webapp/images/banner-graphic.png differ diff --git a/org.springframework.samples.petclinic/src/main/webapp/images/pets.png b/org.springframework.samples.petclinic/src/main/webapp/images/pets.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe63c282b189268e53aa34cf523f32ad7772401 Binary files /dev/null and b/org.springframework.samples.petclinic/src/main/webapp/images/pets.png differ diff --git a/org.springframework.samples.petclinic/src/main/webapp/images/springsource-logo.png b/org.springframework.samples.petclinic/src/main/webapp/images/springsource-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e170f8abf778b24ed1de11dad6f1444e849269ba Binary files /dev/null and b/org.springframework.samples.petclinic/src/main/webapp/images/springsource-logo.png differ diff --git a/org.springframework.samples.petclinic/src/main/webapp/styles/main.css b/org.springframework.samples.petclinic/src/main/webapp/styles/main.css new file mode 100644 index 0000000000000000000000000000000000000000..2eb8f819f6be227090e7f40e6f3cc56dbe1578b6 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/webapp/styles/main.css @@ -0,0 +1,118 @@ +* { + margin: 0px; + padding: 0px; +} + +body { + background-image: url(../images/banner-graphic.png); + background-position: top; + background-repeat: no-repeat; + width: 820px; + margin: auto; + margin-top: 60px; + font-family:verdana; + font-size: 62.5%; +} + +h2 { + text-align: center; +} + +/* Header */ +#header { + height: 50px; +} + +#signin { + float: right; + list-style: none; + width: 100px; + overflow: hidden; +} +#signin li{ + display: inline; + padding: 0 2px; + border-left: 1px solid #000; + margin-left: -1px; +} +#signin li a{ + +} +#nav { + margin-left: auto; + margin-right: auto; + width: 600px; + clear: right; + padding: 1em; +} +#nav ul { + list-style: none; +} +#nav ul li { + display: inline; +} +#nav ul li a { + display: block; + float: left; + width: 150px; + font-size: 1.2em; +} + +/* Sidebar */ +#sidebar { + float: left; + width: 200px; +} +#sub-nav { + list-style: none; +} +#sub-nav li { + display: inline; +} +#sub-nav li a { + display: block; + font-size: 1.2em; +} + +/* content */ +#content{ + font-size: 1.2em; +} + +#petlogo { + display: block; + margin-left: auto; + margin-right: auto; +} + +#main{ + padding-left: 200px; +} +#main label{ + display: block; + padding: 1em 0; +} +/* content - application */ + +#footer { + clear: both; + padding-top: 1em; +} +#copyright{ + float: left; +} +ul#legal{ + list-style: none; + width: 300px; + overflow: hidden; + float: right; +} +ul#legal li{ + display: inline; + padding: 0px 4px 0px 5px; + border-left: 1px solid #000; + margin-left: -1px; +} +ul#legal li a{ + +} \ No newline at end of file