Cícero Ednilson

Blog sobre Desenvolvimento de Softwares

Home » Configurando um projeto Java com Spring MVC e Maven.

Configurando um projeto Java com Spring MVC e Maven.

Muitas vezes precisamos de um exemplo prático de como configurar uma aplicação em Java e não da tempo você ler a documentação de um Framework para montar a estrutura do projeto, foi por isso que resolvi escrever esse post sobre o Spring MVC, aqui vamos montar o projeto e criar o famoso olá mundo, a versão do Spring que vamos usar aqui é a 4.2.1.

Então vamos começar criar nosso projeto, para isso vamos abrir o Eclipse e vamos no menu File -> New -> Dynamic Web Project.

1_spring

Na tela que foi aberta vamos colocar o valor SistemaSpringMVC no campo Project Name, em Target runtime vou escolher o servidor web Tomcat 8, em Dynamic web module version vamos selecionar a opção 3.1 depois vamos clicar em Next.

Atenção: o Tomcat mais especificamente é um container de Servlets e não um servidor de aplicação como GlassFish.

2

Na tela abaixo vamos apenas clicar em Next.

3

Na tela abaixo vamos selecionar a opção Generate web.xml deployment descriptor e vamos clicar em Finish.

4

Depois que criarmos o projeto vamos clicar com o botão direito sobre ele e vamos até a opção Configure -> Convert to Maven Project.

5

Na tela que foi aberta vamos mudar apenas o valor do campo Group Id( Esse campo identifica o projeto de forma única em um grupo de projetos) depois vamos clicar em Finish.

0000006

Agora vamos abrir nosso arquivo pom.xml que foi criado quando convertemos o projeto e vamos deixar ele igual o código abaixo, depois basta dar Ctrl + S para salvar as alterações e baixar nossas dependências.


<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>br.com.ednilson.cicero</groupId>
  <artifactId>SistemaSpringMVC</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
    </plugins>
  </build>
  
 <properties>
		<spring.version>4.2.1.RELEASE</spring.version>
 </properties>
  
 <dependencies>		
	<!-- DEPENDÊNCIAS DO SPRING -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-core</artifactId>
		<version>${spring.version}</version>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web</artifactId>
		<version>${spring.version}</version>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>${spring.version}</version>
	</dependency>
	 
 </dependencies>	
  
</project>

Abaixo podemos ver as nossas dependências que foram baixadas.

7

Agora vamos adicionar um arquivo xml com o nome dispatcher-servlet.xml, para isso vamos até o campo Quick Access e vamos digitar new xml como mostra a imagem abaixo, depois vamos selecionar a opção XML File – Create a new XML file.

9

Vamos selecionar a pasta WEB-INF e no campo File name vamos colocar o valor  dispatcher-servlet.xml, depois vamos clicar em Finish.

10

Agora vamos abrir nosso arquivo dispatcher-servlet.xml e vamos deixar ele com o código abaixo, você pode copiar e colocar para não ocorrer algum erro de digitação.


<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="br.com.ednilson.cicero.controller"/>
 
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		
		<property name="prefix">
			<value>/WEB-INF/views/</value>
		</property>
		
		<property name="suffix">
			<value>.jsp</value>
		</property>
	</bean>
	
</beans>

Veja abaixo como ficou o arquivo.

13

No dispatcher-servlet.xml a tag <context:component-scan base-package=”br.com.ednilson.cicero.controller”/> especifica o pacote dos controladores, a tag <property name=”suffix”> especifica o diretório onde estão nossas views, no nosso caso as views estão em /WEB-INF/views/,  a tag <property name=”suffix”> especifica a extensão das nossas views, no nosso caso .jsp.

Agora vamos abrir nosso arquivo web.xml e vamos deixar ele com o código abaixo.


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  

<display-name>Sistema Spring MVC</display-name>

<welcome-file-list>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list> 

<servlet>
	<servlet-name>dispatcher</servlet-name>
	<servlet-class>
		org.springframework.web.servlet.DispatcherServlet
	</servlet-class>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>dispatcher</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>

<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>

<listener>
	<listener-class>
		org.springframework.web.context.ContextLoaderListener
	</listener-class>
</listener>


</web-app>

O arquivo web.xml deve ficar como mostra a imagem abaixo.

14

Agora vamos criar um pacote na pasta src com o nome de br.com.ednilson.cicero.controller e depois vamos adicionar no nosso pacote a classe SistemaController.

15

Agora vamos deixar a nossa classe com o código abaixo.


package br.com.ednilson.cicero.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/sistema")
public class SistemaController {
 @RequestMapping(value = "/boasvindas", method = RequestMethod.GET)
 public ModelAndView boasVindas(@RequestParam(value = "nome", required = false, defaultValue = "Cícero Ednilson") String nome) {

 ModelAndView modelAndView = new ModelAndView("boasVindas");
 modelAndView.addObject("mensagem", "Olá " + nome);

 return modelAndView;
 }

}

Veja na imagem abaixo a classe que criamos com o código implementado.

16

Na nossa classe (SistemaController) a anotação @RequestMapping mapeia o caminho da nossa requisição para a classe e método, o RequestParam indica que o parâmetro do método deve ser vinculado ao parâmetro de solicitação web, também colocamos o nosso parâmetro como não obrigatório e colocamos um valor padrão, e o ModelAndView modelAndView = new ModelAndView(“boasVindas”) determina qual é a view de destino.

Agora na pasta WEB-INF vamos criar uma pasta com o nome de views, pois foi esse nome que definimos onde o Spring ira buscar nossas views(páginas).

17

Na nossa pasta views vamos adicionar uma página jsp com o nome de boasVindas.jsp e vamos adicionar o código abaixo.



<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Boas Vindas</title>
</head>
<body>
	<center>		
		<h2>
			${mensagem}
		</h2>
		<h2>Nesse post aprendemos a configurar o Spring MVC</h2>
	</center>
</body>
</html>

Veja como ficou nossa página.

18

Agora vamos adicionar uma página jsp na pasta WebContent e vamos dar o nome de index.jsp, depois vamos adicionar o código abaixo.


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página Inicial</title>


<script type="text/javascript">

function Redirecionar(){
	
	var nomeInformado = prompt("Favor informar um nome: ", "");
	
	window.location.href = "sistema/boasvindas?nome=" + nomeInformado;
}
	
</script>

</head>
<body>

	<center>
		<h2>INICIANDO O SISTEMA EM SPRING MVC</h2>
		<h3>
			<a href="#" onclick="Redirecionar();">Click aqui para informar o nome</a>
		</h3>
	</center>
	
</body>
</html>

A página deve ficar como mostra a imagem abaixo.

25

Agora vamos clicar com o botão direito sobre o nosso projeto e vamos até Run As -> Run on Server como mostra a imagem abaixo.

20

Na tela que foi aberta vamos apenas clicar em Finish, lembrando que você já deve ter o Tomcat configurado no Eclipse.

21

Agora vamos abrir nosso sistema no endereço http://localhost:8080/SistemaSpringMVC/, e vamos ver a tela abaixo.

26

Depois que clicarmos no link(Click aqui para informar o nome) o sistema vai abrir a tela abaixo, ai basta informar um nome e clicar em OK.

27

Abaixo o resultado após executarmos nossa ação na página anterior.

24

Você pode pegar o projeto completo aqui.

É isso amigos, nesse post aprendemos como configurar o Spring MVC com Maven, até a próxima.

Comentários

Name of author

Name: ciceroednilson@gmail.com

15 thoughts on “Configurando um projeto Java com Spring MVC e Maven.

  • Parabéns, foi muito detalhado essa primeira configuração.

    Reply
  • Parabéns, ficou muito bom!

    Mas fiquei com uma duvida de como seria para configurar com o Struts2, teria como explicar também?
    Um projeto que tenha o Spring e o Struts.

    Desde já agradeço

    Reply
    • ciceroednilson@gmail.com Post author

      Muito obrigado por visitar o blog Lucas,

      O Spring MVC e o Struts 2 são frameworks de Action Based diferentes, quando você usa o Spring MVC não tem a necessidade de usar o Struts, e hoje em dia o Struts nem está sendo usado mais como antigamente.

      Reply
  • Ajudou bastante jovem

    Reply
  • Ótimo post, já está nos favoritos!

    Reply
  • Obrigado pelo post! Foi de grande valia para mim.

    Reply
  • MUito bom e muito bem explicado. Quando você fala do projeto completo, é o mesmo que acabamos de faze?

    Reply
    • ciceroednilson@gmail.com Post author

      Obrigado por visitar o blog Paulo,

      Quando falo do projeto completo é sobre o tutorial mesmo.

      Abraços,
      Cícero Ednilson.

      Reply
  • Muito bom, me ajudou bastante!

    Reply
    • ciceroednilson@gmail.com Post author

      Muito obrigado por visitar o blog Renan, sempre que tenho tempo estou postando novos tutorias.

      Abraços,
      Cícero Ednilson.

      Reply
  • Marcos Vinicius

    Poxa parabéns pela forma como você ensina. Já havia desistido de tentar aprender primeiramente o maven por que todo projeto meu ele apresentava um erro de pacote war, depois que vi sua dica consegui configurar e dar prosseguimento aos meus estudos. Muito bom mesmo e obrigado por compartilhar seu conhecimento.

    Reply
    • ciceroednilson@gmail.com Post author

      Muito obrigado por visitar o Blog Marcos,

      Desculpa a demora em responder, sempre que tenho tempo estou postando coisas novas, logo logo estarei disponibilizando um novo tutorial de criação de uma aplicação web usando Spring Boot, Spring Security e Material Designer Lite.

      Abraços,
      Cícero Ednilson.

      Reply
  • Obrigado! Ficou até fácil explicando assim. Funcionou corretamente!

    Reply
  • Valeuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
    Fiquei um tempão tentando configurar o Maven em um projeto já existente e não consegui entender nada, só de configurar o Maven já valeu.
    Muuuito obrigado e excelente tutorial.

    Reply

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *