mercoledì 19 giugno 2013

Creazione di un controller

Riprendiamo l'applicazione introduttiva e utilizziamola come base per costruire un'applicazione che implementi un semplice Controller.
  • Creiamo il package springapp.web
  • Creiamo la classe HelloController.java
 

Il codice della classe java è:

package springapp.web;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.IOException;
public class HelloController implements Controller {
        protected final Log logger = LogFactory.getLog(getClass());
        public ModelAndView handleRequest(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException, IOException {
                 logger.info("Returning hello view");
                 return new ModelAndView("hello.jsp");
        }
}

La classe non compilerà per la mancanza di alcune librerie.
Andiamo in buildpath e colleghiamo i jar esterni .
I jar esterni che ci servono sono :
servlet-api.jar e org.apache.commons.logging.jar. Bisogna cercare questi jar nelle raccolte a nostra disposizione per vedere se sono presenti , ricordando che possono essere diverse per versione. Ad esempio nella cartella libs di Tomcat c'è il jar per le servlet, mentre il commons.logging potrebbe essere dentro la cartella libs di Springframework. Se i jar necessari non fossero da nessuna parte vanno cercati in rete e scaricati.

Mancano ancorai jar di Spring. Dovrebbero essere dentro la cartella libs del framework. Si aggiunge il jar spring-webmvc.jar . Conviene copiare i jar dentro la nostra applicazione invece che puntarli come jar esterni. A questo scopo si crea una cartella lib dentro WEB-INF dove copiare fisicamente i jar. :







Poi si collegano come jar interni :
Adesso la classe HelloController dovrebbe compilare.

Creiamo il file springapp-servlet.xml dentro WEB-INF
springapp-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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-2.5.xsd">
  <!-- the application context definition for the springapp DispatcherServlet -->
  <bean name="/hello.htm" class="springapp.web.HelloController"/>
</beans>

E infine scriviamo dentro il file web.xml :

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <servlet>
                 <servlet-name>springapp</servlet-name>
                 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                 <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
                 <servlet-name>springapp</servlet-name>
                 <url-pattern>*.htm</url-pattern>
        </servlet-mapping>
        <welcome-file-list>
                 <welcome-file>
      index.jsp
    </welcome-file>
        </welcome-file-list>
</web-app>

Nessun commento:

Posta un commento