Details
diff --git a/org.springframework.samples.petclinic/pom.xml b/org.springframework.samples.petclinic/pom.xml
index e383597..808c5f6 100644
--- a/org.springframework.samples.petclinic/pom.xml
+++ b/org.springframework.samples.petclinic/pom.xml
@@ -23,10 +23,40 @@
<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/images/banner-graphic.png b/org.springframework.samples.petclinic/src/main/webapp/images/banner-graphic.png
new file mode 100644
index 0000000..e6d01d5
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 0000000..0fe63c2
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 0000000..e170f8a
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 0000000..2eb8f81
--- /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
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 b37beed..08ab758 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 c9833d6..15466b8 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 26672b6..9e3a458 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
@@ -2,6 +2,10 @@
<!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>
</rule>
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 95239d4..8238f51 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>