Size: 29632
Comment:
|
Size: 29679
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 319: | Line 319: |
* catalina.sh start * tail -f catalina.out |
Spring
Spring helps development teams everywhere build simple, portable, fast and flexible JVM-based systems and applications.
http://spring.io/guides/gs/serving-web-content/
http://spring.io/guides/gs/convert-jar-to-war-maven/
REST service
spring.io/guides/gs/rest-service/
Structure
. |-- pom.xml |-- src | `-- main | `-- java | `-- hello | |-- Application.java | |-- Greeting.java | `-- GreetingController.java `-- target |-- classes | `-- hello | |-- Application.class | |-- Greeting.class | `-- GreetingController.class |-- generated-sources | `-- annotations |-- gs-rest-service-0.1.0.jar |-- gs-rest-service-0.1.0.jar.original `-- maven-archiver `-- pom.properties
Steps
- mkdir -p /tmp/greetingSpring
- mkdir -p /tmp/greetingSpring/src/main/java/hello
- mkdir -p /tmp/greetingSpring/target
- cd /tmp/greetingSpring
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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>org.springframework</groupId> <artifactId>gs-rest-service</artifactId> <version>0.1.0</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.1.5.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <properties> <start-class>hello.Application</start-class> </properties> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-releases</id> <url>http://repo.spring.io/libs-release</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-releases</id> <url>http://repo.spring.io/libs-release</url> </pluginRepository> </pluginRepositories> </project>
src/main/java/hello/Application.java
1 package hello;
2
3 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
4 import org.springframework.boot.SpringApplication;
5 import org.springframework.context.annotation.ComponentScan;
6
7 @ComponentScan
8 @EnableAutoConfiguration
9 public class Application {
10
11 public static void main(String[] args) {
12 SpringApplication.run(Application.class, args);
13 }
14 }
src/main/java/hello/Greeting.java
1 package hello;
2
3 public class Greeting {
4
5 private final long id;
6 private final String content;
7
8 public Greeting(long id, String content) {
9 this.id = id;
10 this.content = content;
11 }
12
13 public long getId() {
14 return id;
15 }
16
17 public String getContent() {
18 return content;
19 }
20 }
src/main/java/hello/GreetingController.java
1 package hello;
2
3 import java.util.concurrent.atomic.AtomicLong;
4 import org.springframework.web.bind.annotation.RequestMapping;
5 import org.springframework.web.bind.annotation.RequestParam;
6 import org.springframework.web.bind.annotation.RestController;
7
8 @RestController
9 public class GreetingController {
10
11 private static final String template = "Hello, %s!";
12 private final AtomicLong counter = new AtomicLong();
13
14 @RequestMapping("/greeting")
15 public Greeting greeting(@RequestParam(value="name", required=false, defaultValue="World") String name) {
16 return new Greeting(counter.incrementAndGet(),
17 String.format(template, name));
18 }
19 }
Build with
- mvn clean compile package
Run with:
- jar -tf target/gs-rest-service-0.1.0.jar # check JAR contents
- java -jar target/gs-rest-service-0.1.0.jar
open URL http://localhost:8080/greeting
Tomcat REST service
Structure
. |-- pom.xml |-- src `-- main `-- java `-- hello |-- Application.java |-- Greeting.java `-- GreetingController.java
pom.xml
1 <project xmlns="http://maven.apache.org/POM/4.0.0"
2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5 <modelVersion>4.0.0</modelVersion>
6 <groupId>org.springframework</groupId>
7 <artifactId>gs-rest-service-tomcat</artifactId>
8 <version>0.1.0</version>
9 <packaging>war</packaging>
10
11 <parent>
12 <groupId>org.springframework.boot</groupId>
13 <artifactId>spring-boot-starter-parent</artifactId>
14 <version>1.1.5.RELEASE</version>
15 </parent>
16
17 <dependencies>
18 <dependency>
19 <groupId>org.springframework.boot</groupId>
20 <artifactId>spring-boot-starter-web</artifactId>
21 <scope>compile</scope>
22 </dependency>
23 </dependencies>
24
25 <properties>
26 <start-class>hello.Application</start-class>
27 </properties>
28 <build>
29 <plugins>
30 <plugin>
31 <artifactId>maven-compiler-plugin</artifactId>
32 <version>2.3.2</version>
33 </plugin>
34 </plugins>
35 </build>
36 <repositories>
37 <repository>
38 <id>spring-releases</id>
39 <url>http://repo.spring.io/libs-release</url>
40 </repository>
41 </repositories>
42 <pluginRepositories>
43 <pluginRepository>
44 <id>spring-releases</id>
45 <url>http://repo.spring.io/libs-release</url>
46 </pluginRepository>
47 </pluginRepositories>
48 </project>
src/main/java/hello/Application.java
1 package hello;
2
3 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
4 import org.springframework.boot.SpringApplication;
5 import org.springframework.context.annotation.ComponentScan;
6 import org.springframework.boot.context.web.SpringBootServletInitializer;
7 import org.springframework.boot.builder.SpringApplicationBuilder;
8 import org.springframework.context.annotation.Configuration;
9
10 @ComponentScan
11 @EnableAutoConfiguration
12 @Configuration
13 public class Application extends SpringBootServletInitializer {
14
15 public static void main(String[] args) {
16 SpringApplication.run(appClass, args);
17 }
18
19 @Override
20 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
21 return application.sources(appClass);
22 }
23
24 private static Class<Application> appClass = Application.class;
25 }
src/main/java/hello/Greeting.java
1 package hello;
2
3 public class Greeting {
4
5 private final long id;
6 private final String content;
7
8 public Greeting(long id, String content) {
9 this.id = id;
10 this.content = content;
11 }
12
13 public long getId() {
14 return id;
15 }
16
17 public String getContent() {
18 return content;
19 }
20 }
src/main/java/hello/GreetingController.java
1 package hello;
2
3 import java.util.concurrent.atomic.AtomicLong;
4 import org.springframework.web.bind.annotation.RequestMapping;
5 import org.springframework.web.bind.annotation.RequestParam;
6 import org.springframework.web.bind.annotation.RestController;
7
8 @RestController
9 public class GreetingController {
10
11 private static final String template = "Hello Tomcat, %s!";
12 private final AtomicLong counter = new AtomicLong();
13
14 @RequestMapping("/greetingTomcat")
15 public Greeting greeting(@RequestParam(value="name", required=false, defaultValue="World") String name) {
16 return new Greeting(counter.incrementAndGet(), String.format(template, name));
17 }
18 }
Build and deploy
- mvn clean compile package install
- cp target/gs-rest-service-tomcat-0.1.0.war /usr/local/tomcat/webapps/
- cp target/gs-rest-service-tomcat-0.1.0.war /opt/apache-tomcat-7.0.53/webapps/ # in alternative
- catalina.sh start
- tail -f catalina.out
Open http://localhost:8080/gs-rest-service-tomcat-0.1.0/greetingTomcat
Spring MVC
Structure:
. |-- pom.xml |-- src `-- main |-- java | `-- hello | |-- Application.java | `-- GreetingController.java `-- resources `-- templates `-- greeting.html
- mkdir -p src/main/java/hello
- mkdir -p src/main/resources/templates/
- nano pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4 <modelVersion>4.0.0</modelVersion>
5 <groupId>org.springframework</groupId>
6 <artifactId>gs-serving-web-content</artifactId>
7 <version>0.1.0</version>
8 <parent>
9 <groupId>org.springframework.boot</groupId>
10 <artifactId>spring-boot-starter-parent</artifactId>
11 <version>1.1.8.RELEASE</version>
12 </parent>
13 <dependencies>
14 <dependency>
15 <groupId>org.springframework.boot</groupId>
16 <artifactId>spring-boot-starter-thymeleaf</artifactId>
17 </dependency>
18 </dependencies>
19 <properties>
20 <start-class>hello.Application</start-class>
21 </properties>
22 <build>
23 <plugins>
24 <plugin>
25 <groupId>org.springframework.boot</groupId>
26 <artifactId>spring-boot-maven-plugin</artifactId>
27 </plugin>
28 </plugins>
29 </build>
30 <repositories>
31 <repository>
32 <id>spring-milestone</id>
33 <url>http://repo.spring.io/libs-release</url>
34 </repository>
35 </repositories>
36 <pluginRepositories>
37 <pluginRepository>
38 <id>spring-milestone</id>
39 <url>http://repo.spring.io/libs-release</url>
40 </pluginRepository>
41 </pluginRepositories>
42 </project>
- cd src/main/java/hello/
nano GreetingController.java
1 package hello;
2
3 import org.springframework.stereotype.Controller;
4 import org.springframework.ui.Model;
5 import org.springframework.web.bind.annotation.RequestMapping;
6 import org.springframework.web.bind.annotation.RequestParam;
7
8 @Controller
9 public class GreetingController {
10
11 @RequestMapping("/greeting")
12 public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
13 model.addAttribute("name", name);
14 return "greeting";
15 }
16
17 }
- nano src/main/resources/templates/greeting.html
- nano src/main/java/hello/Application.java
1 package hello;
2
3 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
4 import org.springframework.boot.SpringApplication;
5 import org.springframework.context.annotation.ComponentScan;
6
7 @ComponentScan
8 @EnableAutoConfiguration
9 public class Application {
10
11 public static void main(String[] args) {
12 SpringApplication.run(Application.class, args);
13 }
14
15 }
- mvn clean compile package install
- java -jar target/gs-serving-web-content-0.1.0.jar
testSpringMVCJSP
Structure Maven:
. |-- pom.xml |-- src | `-- main | |-- java | | `-- org | | `-- allowed | | `-- bitarus | | `-- hello | | `-- HelloController.java | `-- webapp | `-- WEB-INF | |-- mvc-dispatcher-servlet.xml | |-- pages | | `-- greeting.jsp | `-- web.xml
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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>org.allowed.bitarus</groupId> <artifactId>testSpringMVCJSP</artifactId> <version>0.1.0</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.4.RELEASE</version> </dependency> </dependencies> </project>
HelloController.java
1 package org.allowed.bitarus.hello;
2
3 import org.springframework.stereotype.Controller;
4 import org.springframework.ui.Model;
5 import org.springframework.web.bind.annotation.RequestMapping;
6 import org.springframework.web.bind.annotation.RequestParam;
7
8 @Controller
9 public class HelloController {
10
11 @RequestMapping("/hello")
12 public String hellox(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
13 model.addAttribute("name", name);
14 return "greeting";
15 }
16
17 }
mvc-dispatcher-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="org.allowed.bitarus.hello" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/pages/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans>
greeting.jsp
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Getting Started: Serving Web Content</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <p>Hello ${name}</p> </body> </html>
web.xml
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring MVC Application + JSP</display-name> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> </web-app>
- mvn clean compile package
Access in Tomcat http://localhost:8081/testSpringMVCJSP-0.1.0/hello?name=asd
testSpringThymeleaf ( Spring MVC + Thymeleaf + Bootstrap + JQuery + Tomcat )
Maven Structure
. |-- pom.xml |-- src | `-- main | |-- java | | `-- org | | `-- allowed | | `-- bitarus | | `-- hello | | `-- HelloController.java | `-- webapp | |-- WEB-INF | | |-- mvc-dispatcher-servlet.xml | | |-- pages | | | |-- greeting.html | | |-- web.xml | |-- css | | `-- bootstrap-3.3.2.min.css | `-- js | |-- bootstrap-3.3.2.min.js | |-- greeting.js | `-- jquery-1.11.2.min.js
pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
5 http://maven.apache.org/xsd/maven-4.0.0.xsd">
6 <modelVersion>4.0.0</modelVersion>
7 <groupId>org.allowed.bitarus</groupId>
8 <artifactId>testSpringMVCThymeleaf</artifactId>
9 <version>0.1.0</version>
10 <packaging>war</packaging>
11 <dependencies>
12 <dependency>
13 <groupId>org.springframework</groupId>
14 <artifactId>spring-core</artifactId>
15 <version>4.1.4.RELEASE</version>
16 </dependency>
17 <dependency>
18 <groupId>org.springframework</groupId>
19 <artifactId>spring-web</artifactId>
20 <version>4.1.4.RELEASE</version>
21 </dependency>
22 <dependency>
23 <groupId>org.springframework</groupId>
24 <artifactId>spring-webmvc</artifactId>
25 <version>4.1.4.RELEASE</version>
26 </dependency>
27 <dependency>
28 <groupId>org.thymeleaf</groupId>
29 <artifactId>thymeleaf-spring4</artifactId>
30 <version>2.1.4.RELEASE</version>
31 </dependency>
32 <dependency>
33 <groupId>org.slf4j</groupId>
34 <artifactId>slf4j-api</artifactId>
35 <version>1.7.10</version>
36 </dependency>
37 <dependency>
38 <groupId>org.slf4j</groupId>
39 <artifactId>slf4j-log4j12</artifactId>
40 <version>1.7.10</version>
41 </dependency>
42 </dependencies>
43 </project>
HelloController.java
1 package org.allowed.bitarus.hello;
2
3 import org.springframework.stereotype.Controller;
4 import org.springframework.ui.Model;
5 import org.springframework.web.bind.annotation.RequestMapping;
6 import org.springframework.web.bind.annotation.RequestParam;
7
8 @Controller
9 public class HelloController {
10
11 @RequestMapping("/hello")
12 public String hellox(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
13 model.addAttribute("name", name);
14 return "greeting";
15 }
16
17 }
mvc-dispatcher-servlet.xml
1 <beans xmlns="http://www.springframework.org/schema/beans"
2 xmlns:context="http://www.springframework.org/schema/context"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:mvc="http://www.springframework.org/schema/mvc"
5 xsi:schemaLocation="
6 http://www.springframework.org/schema/beans
7 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
8 http://www.springframework.org/schema/context
9 http://www.springframework.org/schema/context/spring-context-3.0.xsd
10 http://www.springframework.org/schema/mvc
11 http://www.springframework.org/schema/mvc/spring-mvc.xsd">
12 <context:component-scan base-package="org.allowed.bitarus.hello" />
13 <!-- Enabling Spring MVC configuration through annotations -->
14 <mvc:annotation-driven />
15 <!-- Mapping Static Resources -->
16 <mvc:resources mapping="/js/**" location="/js/" />
17 <mvc:resources mapping="/css/**" location="/css/" />
18
19 <bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
20 <property name="prefix" value="/WEB-INF/pages/" />
21 <property name="suffix" value=".html" />
22 <property name="templateMode" value="HTML5" />
23 <property name="cacheable" value="false" />
24 <property name="characterEncoding" value="UTF-8" />
25 </bean>
26 <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
27 <property name="templateResolver" ref="templateResolver" />
28 </bean>
29 <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
30 <property name="templateEngine" ref="templateEngine" />
31 <property name="order" value="1" />
32 <property name="characterEncoding" value="UTF-8" />
33 </bean>
34 </beans>
greeting.html
1 <!DOCTYPE HTML>
2 <html xmlns:th="http://www.thymeleaf.org">
3 <head>
4 <title>Getting Started: Serving Web Content</title>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <meta name="viewport" content="width=device-width, initial-scale=1"/>
7 <script th:src="@{/js/jquery-1.11.2.min.js}"></script>
8 <script th:src="@{/js/bootstrap-3.3.2.min.js}"></script>
9 <script th:src="@{/js/greeting.js}"></script>
10 <link rel="stylesheet" th:href="@{/css/bootstrap-3.3.2.min.css}"/>
11 </head>
12 <body>
13 <nav class="navbar navbar-default navbar-fixed-top">
14
15 <div class="container">
16 <ul class="nav navbar-nav" style="width: 100%;">
17 <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
18 <li><a href="#">Link</a></li>
19 <li class="dropdown">
20 <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Dropdown <span class="caret"></span></a>
21 <ul class="dropdown-menu" role="menu">
22 <li><a href="#">Action</a></li>
23 <li><a href="#">Another action</a></li>
24 </ul>
25 </li>
26 </ul>
27 <h1>My First Bootstrap Page</h1>
28 <p>This part is inside a .container class.</p>
29 <p>The .container class provides a responsive fixed width container.</p>
30 <p th:text="'Hello, ' + ${name} + '!'" />
31 <div class="row">
32 <div class="col-sm-4">.col-sm-4</div>
33 <div class="col-sm-4">.col-sm-4</div>
34 <div class="col-sm-4">.col-sm-4</div>
35 </div>
36 <div class="row">
37 <div class="col-md-4">.col-md-4</div>
38 <div class="col-md-4">.col-md-4</div>
39 <div class="col-md-4">.col-md-4</div>
40 </div>
41
42 <ul class="nav nav-tabs">
43 <li role="presentation" class="tabHome"><a href="#">Home</a></li>
44 <li role="presentation" class="tabProfile"><a href="#">Profile</a></li>
45 <li role="presentation" class="tabMessages"><a href="#">Messages</a></li>
46 </ul>
47
48 <div class="panel panel-primary panelHome">
49 <div class="panel-heading">
50 <h3 class="panel-title">Panel home</h3>
51 </div>
52 <div class="panel-body">
53 This is a Basic panel home
54 <form role="form">
55 <div class="form-group">
56 <label for="email">Email address:</label>
57 <input type="email" class="form-control" id="email"/>
58 </div>
59 <div class="form-group">
60 <label for="pwd">Password:</label>
61 <input type="password" class="form-control" id="pwd"/>
62 </div>
63 <div class="checkbox">
64 <label><input type="checkbox"/> Remember me</label>
65 </div>
66 <button id="submitButton" type="submit" class="btn btn-default">Click to show modal</button>
67 </form>
68 </div>
69 </div>
70 <div class="panel panel-primary panelProfile">
71 <div class="panel-heading">
72 <h3 class="panel-title">Panel profile</h3>
73 </div>
74 <div class="panel-body">
75 </div>
76 </div>
77 <div class="panel panel-primary panelMessages">
78 <div class="panel-heading">
79 <h3 class="panel-title">Panel messages</h3>
80 </div>
81 <div class="panel-body">
82 </div>
83 </div>
84 </div>
85
86 <div id="myModal" class="modal fade">
87 <div class="modal-dialog">
88 <div class="modal-content">
89 <div class="modal-header">
90 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
91 <h4 class="modal-title">Confirmation</h4>
92 </div>
93 <div class="modal-body">
94 <p>Do you want to save changes you made to document before closing?</p>
95 <p class="text-warning"><small>If you don't save, your changes will be lost.</small></p>
96 </div>
97 <div class="modal-footer">
98 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
99 <button type="button" class="btn btn-primary">Save changes</button>
100 </div>
101 </div>
102 </div>
103 </div>
104
105 </nav>
106 </body>
107 </html>
web.xml
1 <web-app id="WebApp_ID" version="2.4"
2 xmlns="http://java.sun.com/xml/ns/j2ee"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
5 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
6 <display-name>Spring MVC Application + Thymeleaf</display-name>
7 <servlet>
8 <servlet-name>mvc-dispatcher</servlet-name>
9 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
10 <load-on-startup>1</load-on-startup>
11 </servlet>
12 <servlet-mapping>
13 <servlet-name>mvc-dispatcher</servlet-name>
14 <url-pattern>/</url-pattern>
15 </servlet-mapping>
16 <context-param>
17 <param-name>contextConfigLocation</param-name>
18 <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
19 </context-param>
20 </web-app>
greeting.js
1 $(document).ready(greetingReady);
2
3 function greetingReady(){
4 console.log("greeting ready !!!!");
5 $('.tabHome').click(homeClicked);
6 $('.tabProfile').click(profileClicked);
7 $('.tabMessages').click(messagesClicked);
8
9 $('.tabHome').addClass('active');
10 $('.panelHome').show();
11 $('.panelProfile').hide();
12 $('.panelMessages').hide();
13
14 $('.panel-heading').click(headingClicked);
15 $('#submitButton').click(submitClicked);
16 }
17
18 function submitClicked(event){
19 $('#myModal').modal('show');
20 }
21
22 function headingClicked(){
23 $('.panel-body').toggle();
24 }
25
26 function homeClicked(event){
27 event.preventDefault();
28 event.stopPropagation();
29 $('.panelHome').show();
30 $('.panelProfile').hide();
31 $('.panelMessages').hide();
32 $('.tabHome').addClass('active');
33 $('.tabProfile').removeClass('active');
34 $('.tabMessages').removeClass('active');
35 }
36
37 function profileClicked(event){
38 event.preventDefault();
39 event.stopPropagation();
40 $('.panelHome').hide();
41 $('.panelProfile').show();
42 $('.panelMessages').hide();
43 $('.tabHome').removeClass('active');
44 $('.tabProfile').addClass('active');
45 $('.tabMessages').removeClass('active');
46 }
47
48 function messagesClicked(event){
49 event.preventDefault();
50 event.stopPropagation();
51 $('.panelHome').hide();
52 $('.panelProfile').hide();
53 $('.panelMessages').show();
54 $('.tabHome').removeClass('active');
55 $('.tabProfile').removeClass('active');
56 $('.tabMessages').addClass('active');
57 }
- mvn clean compile package
Deploy in Tomcat listening in 8081. Access in Tomcat http://localhost:8081/testSpringMVCThymeleaf-0.1.0/hello?name=agh