Review
In the previous section, we have discussed the Domain, Repository, Service, and Controller classes. In this section, we will build and run our app. We will also study how to import the project in Eclipse.
Table of Contents
Click on a link to jump to that section:
- Functional Specs
- Creating the View
- HTML Mockup
- Thymeleaf Integration
- JavaConfig
- ApplicationContext.java
- SpringDataConfig.java
- ThymeleafConfig.java
- ApplicationInitializer.java
- Layers
- Domain
- Service
- Controller
- Running the application
- Clone from GitHub
- Create the Database
- Run with Maven and Tomcat 7
- Run with Maven and Jetty 8
- Import to Eclipse
- Validate with W3C
Running the Application
Clone from GitHub
To clone from GitHub, follow these instructions:- Open a Git terminal
- Enter the following command:This will clone the JavaConfig-based application.
git clone https://github.com/krams915/spring-thymeleaf-javaconfig.git
If you prefer the XML-based version,git clone https://github.com/krams915/spring-thymeleaf-xmlconfig.git
Remember:
There are two versions of the application: a JavaConfig-based and an XML config-based app. Both versions are identical in their feature set.
Create the Database
- Run MySQL
- Create a new database:
spring_thymeleaf_tutorial
- Import the spring_thymeleaf_tutorial.sql from the src/main/resources path
Run with Maven and Tomcat 7
Ensure Maven is installed first, and you have created the MySQL database- Open a terminal
- Browse to the directory where you've cloned the project
- Enter the following command:
mvn tomcat7:run
- You should see the following output:
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------------------------------------------------
[INFO] Building spring-thymeleaf-tutorial Maven Webapp 0.0.1-SNAPSHOT
[INFO] -------------------------------------------------------------
[INFO]
[INFO] >>> tomcat7-maven-plugin:2.0:run (default-cli) @ spring-thymeleaf-tutorial >>>
...
...
...
Dec 2, 2012 5:38:31 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Dec 2, 2012 5:38:31 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Tomcat
Dec 2, 2012 5:38:31 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.30
Dec 2, 2012 5:38:42 PM org.apache.catalina.core.ApplicationContext log
INFO: Spring WebApplicationInitializers detected on classpath: [org.krams.config.ApplicationInitializer@1cc33893]
Dec 2, 2012 5:38:43 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Dec 2, 2012 5:38:52 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'dispatcher'
Dec 2, 2012 5:38:52 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"] - Open a browser
- Visit the following URL:
http://localhost:8080/spring-thymeleaf-tutorial/users
Run with Maven and Jetty 8
Ensure Maven is installed first, and you have created the MySQL database.- Open a terminal
- Browse to the directory where you've cloned the project
- Enter the following command:
mvn jetty:run
- You should see the following output:
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------------------------------------------------
[INFO] Building spring-thymeleaf-tutorial Maven Webapp 0.0.1-SNAPSHOT
[INFO] -------------------------------------------------------------
[INFO]
[INFO] >>> jetty-maven-plugin:8.1.5.v20120716:run (default-cli) @ spring-thymeleaf-tutorial >>>
...
...
...
2012-12-02 17:42:56.556:INFO:/spring-thymeleaf-tutorial:Initializing Spring FrameworkServlet 'dispatcher'
2012-12-02 17:42:56.760:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server - Open a browser
- Visit the following URL:
http://localhost:8080/spring-thymeleaf-tutorial/users
Import to Eclipse
Ensure Maven is installed first- Open a terminal
- Enter the following command:
mvn eclipse:eclipse -Dwtpversion=2.0
- You should see the following output:
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------------------------------------------------
[INFO] Building spring-thymeleaf-tutorial Maven Webapp 0.0.1-SNAPSHOT
[INFO] -------------------------------------------------------------
[INFO]
[INFO] >>> maven-eclipse-plugin:2.9:eclipse (default-cli) @ spring-thymeleaf-tutorial >>>
...
...
...
[INFO] -------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -------------------------------------------------------------
[INFO] Total time: 9.356s
[INFO] Finished at: Sun Dec 02 17:46:43 PHT 2012
[INFO] Final Memory: 15M/81M
[INFO] -------------------------------------------------------------
This command will add the following files to your project:.classpath
You may have to enable "show hidden files" in your file explorer to view them.
.project
.settings
target - Run Eclipse and import the application as Maven project
Validate with W3C Markup Validation Service
One of the promises of Thymeleaf is it produces valid HTML pages. Let's test that out using W3C validation service.- Run the application
- Open a browser
- Visit the following URL:
http://localhost:8080/spring-thymeleaf-tutorial/users
- View the HTML source (right-click or go to menu)
- Copy the HTML source
- Open W3C Markup Validation Service at http://validator.w3.org/#validate_by_input
- Paste the HTML source and wait for the validation result
You should see a similar output:
Conclusion
We've have completed our Spring MVC application with Thymeleaf as our template engine . We've studied how to convert our HTML mockup into a Thymeleaf template that validates with W3C validator service. We've also discussed how to create a JavaConfig-based application. As a bonus, we've also provided an XML-based application.
I hope you've enjoyed this tutorial. Don't forget to check my other tutorials at the Tutorials section.
Revision History
Revision | Date | Description |
---|---|---|
1 | Dec 2 2012 | Uploaded tutorial and GitHub repositories |
2 | Dec 3 2012 | Updated table of contents |
3 | Dec 12 2012 | Updated Part 2 |
0 komentar:
Post a Comment