Skip to content
Browse files

initial commit, includes working version of plain JSP and custom tags

  • Loading branch information...
0 parents commit cdf6edcf271505e203ec83a97d69ec46430ecbca Mic committed Sep 11, 2012
4 .gitignore
@@ -0,0 +1,4 @@
+target/*
+.settings/*
+.classpath
+
26 .project
@@ -0,0 +1,26 @@
+<projectDescription>
+ <name>mvc-layout-samples</name>
+ <comment>NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.springframework.ide.eclipse.core.springbuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.springframework.ide.eclipse.core.springnature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ </natures>
+</projectDescription>
10 README
@@ -0,0 +1,10 @@
+Before installing those samples please make sure that Maven and git have been installed and configured properly on your local system.
+
+You can do:
+
+git clone git@github.com:michaelisvy/ajax-samples.git
+cd ajax-samples
+mvn eclipse:eclipse
+
+Your project is now ready to be imported into Eclipse.
+File -> Import -> Existing project into Eclipse
138 pom.xml
@@ -0,0 +1,138 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>com.springsource.samples</groupId>
+ <artifactId>mvc-layout-samples</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>war</packaging>
+
+ <name>AjaxDemo</name>
+ <url>http://maven.apache.org</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <spring.framework.version>3.1.2.RELEASE</spring.framework.version>
+ <tiles.version>2.2.2</tiles.version>
+ <sl4j.version>1.7.0</sl4j.version>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.8</version>
+ <configuration>
+ <downloadSources>true</downloadSources>
+ <downloadJavadocs>true</downloadJavadocs>
+ <wtpversion>2.0</wtpversion>
+ <sourceIncludes>
+ <sourceInclude>**/*.*</sourceInclude>
+ </sourceIncludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <!-- Web layer -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-webmvc</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.2</version>
+ </dependency>
+
+ <!-- Dependency Injection -->
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-tx</artifactId>
+ <version>${spring.framework.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+
+
+
+
+ <!-- Testing -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${spring.framework.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tiles</groupId>
+ <artifactId>tiles-jsp</artifactId>
+ <version>${tiles.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.10</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${sl4j.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${sl4j.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${sl4j.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ <scope>runtime</scope>
+ </dependency>
+
+
+
+ </dependencies>
+
+</project>
39 src/main/java/controller/UserController.java
@@ -0,0 +1,39 @@
+package controller;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import model.User;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+
+@Controller
+public class UserController {
+
+ @RequestMapping(value="/users/all/jsp-plain",method=RequestMethod.GET)
+ public String findUsersPlain(Model model){
+ buildUserList(model);
+ return "01-plain/users";
+ }
+
+ @RequestMapping(value="/users/all/custom-tags",method=RequestMethod.GET)
+ public String findUsers(Model model){
+ buildUserList(model);
+ return "02-custom-tags/users";
+ }
+
+ private void buildUserList(Model model) {
+ List<User> users = new ArrayList<User>();
+ users.add(new User("Paul", "Chapman"));
+ users.add(new User("Mike", "Wiesner"));
+ users.add(new User("Mark", "Secrist"));
+ users.add(new User("Ken", "Krueger"));
+ model.addAttribute("users", users);
+ }
+
+
+}
24 src/main/java/model/User.java
@@ -0,0 +1,24 @@
+package model;
+
+
+public class User {
+
+ private String firstName;
+
+ private String lastName;
+
+
+ public User(String firstName, String lastName) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+}
23 src/main/webapp/WEB-INF/app-config.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:mvc="http://www.springframework.org/schema/mvc"
+ xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+
+
+ <!-- Scans the classpath of this application for @Components to deploy as beans -->
+ <context:component-scan base-package="controller" />
+
+ <!-- Configures the @Controller programming model -->
+ <mvc:annotation-driven />
+
+ <!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory -->
+ <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+ <property name="prefix" value="/WEB-INF/view/jsp/"/>
+ <property name="suffix" value=".jsp"/>
+ </bean>
+
+</beans>
20 src/main/webapp/WEB-INF/tags/layout.tag
@@ -0,0 +1,20 @@
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
+<%@ attribute name="title" required="true" rtexprvalue="true" %>
+
+
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>${title}</title>
+ <spring:url value="/style" var="styleUrl" />
+ <link href="${styleUrl}/app.css" rel="stylesheet">
+ </head>
+<body>
+
+ <div class="container" style="padding-top: 50px;">
+
+ <jsp:include page="../menu.jsp"/>
+ <jsp:doBody />
+ <jsp:include page="../footer.jsp"/>
+ </div>
+</body>
1 src/main/webapp/WEB-INF/view/jsp/01-plain/users.jsp
@@ -0,0 +1 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
1 src/main/webapp/WEB-INF/view/jsp/02-custom-tags/users.jsp
@@ -0,0 +1 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
3 src/main/webapp/WEB-INF/view/jsp/footer.jsp
@@ -0,0 +1,3 @@
+<div id="footer" class="clearfix">
+ <p>Copyright 2012 SpringSource, a division of VMware</p>
+</div>
16 src/main/webapp/WEB-INF/view/jsp/menu.jsp
@@ -0,0 +1,16 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+
+<c:url value="/users/all/jsp-plain.htm" var="usersPlain" />
+<c:url value="/users/all/custom-tags.htm" var="usersCustomTags" />
+<c:url value="/images/springsource_banner_green.png" var="headerImage" />
+
+<div class="header well">
+ <img src="${headerImage}">
+ <div class="page-header">
+ <h1>MVC Layout Samples</h1>
+ </div>
+ <ul>
+ <li><a href="${usersPlain}">No template</a></li>
+ <li><a href="${usersCustomTags}">Custom tags</a></li>
+ </ul>
+</div>
26 src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
+ <display-name>HelloWorldExampleWithSpring3MVCInEclipse</display-name>
+ <servlet>
+ <servlet-name>DispatcherServlet</servlet-name>
+ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+ <init-param>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>
+ /WEB-INF/app-config.xml
+ </param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>DispatcherServlet</servlet-name>
+ <url-pattern>*.htm</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>DispatcherServlet</servlet-name>
+ <url-pattern>*.json</url-pattern>
+ </servlet-mapping>
+ <welcome-file-list>
+ <welcome-file>index.jsp</welcome-file>
+ </welcome-file-list>
+</web-app>
BIN src/main/webapp/images/springsource_banner_green.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 src/main/webapp/index.jsp
@@ -0,0 +1,15 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
+
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>Index</title>
+ </head>
+<body>
+ <jsp:include page="WEB-INF/view/jsp/menu.jsp"/>
+</body>
+</html>
19 src/main/webapp/style/app.css
@@ -0,0 +1,19 @@
+
+form fieldset { padding: 20px; }
+div.control-group { margin-bottom: 20px; }
+div.control-group label.control-label { width: 300px; }
+div.control-group div.controls { width: 400px; }
+div.controls span { color: red; font-size: 0.8em; }
+
+div.container { margin: 0 auto; width: 940px; }
+
+a { text-decoration: none; }
+a:hover { text-decoration: underline; }
+
+h1 { border-bottom: 1px solid #eee; padding-bottom: 13px; }
+h1 small { font-size: 0.6em; color: #ccc; }
+
+
+table {width: 300px;}
+ tr:nth-child(odd) {background-color: #eee;}
+ tr:nth-child(even) {background-color: #fff;}
7 src/main/webapp/style/main.css
@@ -0,0 +1,7 @@
+.error{
+ color: red;
+}
+
+.success{
+ color: green;
+}

0 comments on commit cdf6edc

Please sign in to comment.
Something went wrong with that request. Please try again.