Home / Programmazione / Java / Usare i controller in Java Spring
Mattepuffo

Usare i controller in Java Spring

Usare i controller in Java Spring

Dopo aver studicchiato JSF (Java Server Faces) ho deciso di buttarmi anche su Spring, un altro framework web per Java.

Prima di tutto, è altamento consigliato usare la Spring Tool Suite, ma essendo basata su Eclipse non mi piace per niente.

Quindi alla fine ho deciso di usare il mio caro Netbeans, che però ha un supporto meno vasto.

Quindi vediamo come giocherellare con in controller di Spring una volta che avete creato il progetto.

Il file web.xml, per questo esempio basico, può rimanere invariato.

Però fate una copia del file dispatcher-servlet.xml, e nell'originale sosituite tutto con questo:

<?xml version='1.0' encoding='UTF-8' ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
 
    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp" />

    <bean name="/index.html"
          class="service.IndexController" />
    
</beans>

Facendone una copia potete anche studiarvi le differenze.

Bene, abbiamo impostato il nostro controller; notate che l'attributo class vuole il percorso packge.Class.

A questo punto modificate il file index.jsp sostituendo tutto con questo:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Welcome to Spring Web MVC project</title>
    </head>

    <body>
        <h2>${msg}</h2>
    </body>
</html>

Manca solo il controller, che sarà una cosa così:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class IndexController extends AbstractController {
    
    public IndexController() {
    }
    
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView model = new ModelAndView("index");
        model.addObject("msg", "hello world");
        return model;
    }
    
}

A questo punto avviando il progetto dovreste ritrovarvi nella pagina index con dentro scritto il messaggio impostato (hello world).

Il costruttore di ModelAndView richiede il nome della pagina / view in cui mettere l'output del messaggio (il nome del file senza estensione).

Per il resto è abbastanza semplice.

Enjoy!