...

Spring 4 MVC Web Hello World

Kerangka kerja Spring atau Framework Spring Web MVC merupakan Framework model-view-controller (MVC) yang digunakan untuk routing atau mengarahkan requests ke handlers, dengan handler mappings yang bisa dikonfigurasi, resolusi view, locale dan time zone, juga resolusi theme resolution dan upload file. Handler default berbasi pada anotasi @Controller dan @RequestMapping. Kali ini kita memcoba untuk membuat Aplikasi Web Hello World dengan menggunakan Framework Spring 4 MVC

1. Buatlah project Maven

Buatlah Project Maven baru menggunakan IDE Eclipse JavaEE, beri nama artifactId HelloSpringNoXML atau nama lainnya. Di bawah ini merupakan struktur direktori Project Maven yang telah berhasil dibuat.

2. Edit file pom.xml

Tambahkan properties untuk Spring framework yang ingin kita gunakan dalam hal ini versi 4.0.6, sebagai berikut

<properties>
   <springframework.version>4.0.6.RELEASE</springframework.version>
</properties>

Kemudian tuliskan beberapa dependency yang dibutuhkan

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>${springframework.version}</version>
</dependency>
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>3.1.0</version>
</dependency>
<dependency>
   <groupId>javax.servlet.jsp</groupId>
   <artifactId>javax.servlet.jsp-api</artifactId>
   <version>2.3.1</version>
</dependency>
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>jstl</artifactId>
   <version>1.2</version>
</dependency>

Tambahkan juga apache.maven.plugins, karena kita tidak menggunakan web.xml. Juga periksa source dan target untuk JDK yang terinstall.

<pluginManagement>
   <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.8.0</version>
         <configuration>
            <source>1.8</source>
            <target>1.8</target>
         </configuration>
      </plugin>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-war-plugin</artifactId>
         <version>2.4</version>
         <configuration>
            <warSourceDirectory>src/main/webapp</warSourceDirectory>
            <warName>hello</warName>
            <failOnMissingWebXml>false</failOnMissingWebXml>
         </configuration>
      </plugin>
   </plugins>
</pluginManagement>

 

4. Implementasikan class Controller untuk Request mapping

Kita buat class baru dengan nama HelloWorldController dalam package com.kodefin.spring.controller. kemudian kita beri anotasi @Controller karena class ini merupakan controller dan @RequestMapping("/")

package com.kodefin.spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/")
public class HelloWorldController {
   @RequestMapping(method = RequestMethod.GET)
   public String sayHello(ModelMap model) {
      model.addAttribute("salam", "Hello World Spring 4 MVC");
      return "index";
   }
}

seperti yang terdapat dalam kode di atas kita melakukan mapping atau routing request GET ke index, dan passing model atribut dengan name dan valuenya.

5. Menuliskan view

Buatlah folder views dalam webapp, sebagai berikut

kemudian tempatkan file index.jsp di dalam folder tersebut.Tuliskan kode sepeti di bawah ini pada file index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>SpringMVC Hello World</title>
</head>
<body>
<p>Selamat Datang, ${salam}</p>
</body>
</html>

6. Menambahkan file konfigurasi Spring MVC

Buatlah file baru dengan nama HelloConfiguration dengan package com.kodefin.spring.config, sebagai berikut :

package com.kodefin.spring.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.kodefin.spring")
public class HelloConfiguration extends WebMvcConfigurerAdapter {
	@Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/views/");
        viewResolver.setSuffix(".jsp");
 
        return viewResolver;
    }
	
	@Override
	public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
		configurer.enable();
	}
}

6. Class Inisialisasi Spring

Tambahkan file class untuk Inisialisasi Spring yaitu HelloWorldInitializer dalam package com.kodefin.spring.

package com.kodefin.spring;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import com.kodefin.spring.config.HelloConfiguration;

public class HelloWorldInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
 
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] { HelloConfiguration.class };
    }
  
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return null;
    }
  
    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }
}

Jalankan program pada Server Tomcat, selamat mencoba.

1. Klik kanan pada project > Run As > Run on Server

2. Klik Next

3. Klik Finish