Categorías
spring

Spring MVC HelloWorld usando Maven en Eclipse

Los desarrolladores de Java a menudo se basan en ejemplos para aprender el marco de Spring. Los ejemplos simples suelen ser un recurso de aprendizaje clave. Hay muchas aplicaciones Spring MVC HelloWorld. Sin embargo, la mayoría de ellos están desactualizados (no integran Maven, usan la versión anterior de Spring, etc.) o no están completos (faltan pasos clave o vista de jerarquía de archivos). Por lo tanto, no puede conducir a un Hello World que funcione perfectamente. En este artículo, mostraré los pasos para crear una aplicación Spring MVC HelloWorld usando Maven en Eclipse. Se ilustra el contenido y la ubicación de todos los archivos.

Requisito previo

  • Windows 7, Java 7, Eclipse Kepler Java EE
  • Tomcat 7 (Cómo instalar Tomcat 7 en Eclipse)

Paso 1: cree un proyecto Maven

Cree un proyecto de Maven siguiendo los siguientes pasos:

primavera-helloworld-maven-2

Seleccione «aplicación web».

primavera-helloworld-maven-3

primavera-helloworld-maven-4

GroupId identifica el proyecto de forma única en todos los proyectos, por lo que debemos aplicar un esquema de nomenclatura. ArtifactId es el nombre del jar sin versión. Para obtener más información sobre cada campo, consulte el Página Oficial sobre la convención de nomenclatura de maven. (Puede hacer esto más tarde. Tiene más sentido cuando completa el proyecto primero).

Una vez creado el proyecto Maven, el proyecto en la vista del navegador debería tener el siguiente aspecto:

spring-mvc-helloworld-navigator-view1

Como se muestra arriba, hay un error marcado con rojo. Si abre el archivo index.jsp, puede ver el mensaje de error:
spring-mvc-helloworld-navigator-view2

The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

Para solucionar el problema, haga clic con el botón derecho en el proyecto -> Propiedades -> Ruta de compilación de Java -> Agregar biblioteca …-> Tiempo de ejecución del servidor -> Apache Tomcat -> Finalizar.

Paso 2: configurar Spring

Para hacer una aplicación web Spring, necesitamos configurar varios archivos xml. En primer lugar, necesitamos agregar dependencias de Spring. Edite el archivo pom.xml generado automáticamente para que sea el siguiente:

  Cómo implementar Spring Project en Live Server

pom.xml

<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.programcreek</groupId>
	<artifactId>HelloWorld</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>HelloWorld Maven Webapp</name>
	<url>http://maven.apache.org</url>
 
	<properties>
		<spring.version>4.0.1.RELEASE</spring.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<!-- Spring dependencies -->
		<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>
 
 
	<build>
		<finalName>HelloWorld</finalName>
	</build>
</project>

Edite el archivo web.xml predeterminado.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 
 
	<display-name>Archetype Created Web Application</display-name>
 
	<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>
  Instalar el complemento Maven para Eclipse

Cree un archivo xml «dispatcher-servlet.xml» en el mismo directorio de web.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="com.programcreek.helloworld.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>

En el archivo xml anterior, base-package especifica el paquete de los controladores. prefix especifica el directorio de vistas, y está configurado para ser /WEB-INF/views/, lo que significa views El directorio debe crearse bajo WEB-INF. suffix especifica la extensión de archivo de las vistas. Por ejemplo, dada una vista «helloworld», la vista se ubicará como /WEB-INF/views/helloworld.jsp. Puede resolver esto más adelante en el Paso 3.

Paso 3: Cree el controlador Spring y la vista

Crea el HelloWorldController en el directorio src / main / java /.

HelloWorldController.java

package com.programcreek.helloworld.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
 
@Controller
public class HelloWorldController {
	String message = "Welcome to Spring MVC!";
 
	@RequestMapping("/hello")
	public ModelAndView showMessage(
			@RequestParam(value = "name", required = false, defaultValue = "World") String name) {
		System.out.println("in controller");
 
		ModelAndView mv = new ModelAndView("helloworld");
		mv.addObject("message", message);
		mv.addObject("name", name);
		return mv;
	}
}

En el código de arriba, @RequestMapping la anotación asigna las solicitudes web a clases de controlador específicas y / o métodos de controlador, en este caso, showMessage(). Proporciona un estilo coherente entre los entornos Servlet y Portlet, con la semántica adaptándose al entorno concreto.

  Tutorial de Spring Framework - Hola mundo

RequestParam indica que un parámetro de método debe estar vinculado a un parámetro de solicitud web. En este caso, también lo hacemos no obligatorio y le damos un valor predeterminado.

new ModelAndView("helloworld") determina que helloworld es la vista de destino.

index.jsp

<%@ 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>Spring 4 MVC - HelloWorld Index Page</title>
</head>
<body>
 
	<center>
		<h2>Hello World</h2>
		<h3>
			<a href="hello?name=Eric">Click Here</a>
		</h3>
	</center>
</body>
</html>

Hello World

Haga clic aquí

Cree el archivo helloworld.jsp en el directorio / WEB-INF / views /.

helloworld.jsp

<%@ 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>Spring 4 MVC -HelloWorld</title>
</head>
<body>
	<center>
		<h2>Hello World</h2>
		<h2>
			${message} ${name}
		</h2>
	</center>
</body>
</html>

Hello World

$ {message} $ {name}

${variable} se convertirá al valor de la variable.

Vista final del navegador del proyecto:
primavera-hola-mundo-vista-final

Paso 4: ejecutar en el servidor

Haga clic con el botón derecho en el proyecto y seleccione Ejecutar como -> Ejecutar en el servidor.

hola-mundo-primavera

hola-mundo-primavera-2

Archivo zip del proyecto para descargar.

Siguiente: Inyección de dependencias y configuración XML

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *