Home » Java » Enterprise Java » Spring MVC: Resources

About Alexey Zvolinskiy

Alexey Zvolinskiy
Alexey is a test developer with solid experience in automation of web-applications using Java, TestNG and Selenium. He is so much into QA that even after work he provides training courses for junior QA engineers.

Spring MVC: Resources

One of the most frequent questions which I receive from my blog readers is how to use css and javascript files in application with Spring MVC. So it’s a good opportunity to write an article about usage of resources in Spring MVC. As usually I will use java based configuration approach.Spring-MVC-Resources

In a nowadays it’s hard to imagine web-application which doesn’t has css and javascript files. In what way Spring MVC can deal with them? Where to place these files in a dynamic web project? How to get access to static resources? I will try to explain all this in a few minutes.
 
 
Firstly you need to have some css or javascript file which you want to plug into a project. In my example I’m going to use a main.css file:

Spring-MVC-resources (1)
Look carefully where I have placed the file (src\main\webapp\resources\css\main.css). After this I can continue with java configuration file.

@Configuration
@EnableWebMvc
...
public class WebAppConfig extends WebMvcConfigurerAdapter {

	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
	}
...

Above you can see the code snippet which shows how to modify a configuration class to make resources available. In our case a role of resources plays just one main.css file. Let’s consider what’s going on in the following code:

...
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
	}
...

Here I declare a mapping of src\main\webapp\resources folder and all its content to a resource location value /resources/

After this manipulations you can access css and javascript files in Spring MVC. Here are some example of usage:

If I want to apply main.css to url: www.mysite.com/index.html, I need to use following construction in HTML code:

< link href="resources/css/main.css" rel="stylesheet" type="text/css"/ >

If I want to apply main.css to url: www.mysite.com/some/location.html, I need to use following construction in HTML code:

< link href="../resources/css/main.css" rel="stylesheet" type="text/css"/ >

These two examples are clear enough to understand how to work with Spring MVC resources. In the following posts I will demonstrate resource usage in Spring MVC project.

 

Reference: Spring MVC: Resources from our JCG partner Alexey Zvolinskiy at the Fruzenshtein’s notes blog.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

and many more ....

3 comments

  1. thanq .. this article helps me a lot :)

  2. Thanks but your following sentence is very vague:

    “After this I can continue with java configuration file.”

    Which configuration file? Where is it located? What does it configure?

Leave a Reply

Your email address will not be published. Required fields are marked *

*


seven − 4 =

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.

THANK YOU!

Close