Assim, vamos começar por criar uma classe Controller (OlaController) a qual irá devolver dados do Model (string "Olá Mundo!!!") e uma View (ola.jsp) que servirá para renderizar os dados do Model num Browser.
O resultado não será muito diferente do obtido no artigo anterior, mas o objetivo aqui é criar um Controller que instancia dados e os passa a uma View.
No próximo artigo, iremos avançar com o preenchimento de dados de Model oriundos de uma base de dados...
Assim, vamos criar um novo package (exemplo) no qual iremos colocar o Controller OlaController.java.
No NetBeans, podemos clicar sobre o package exemplo com o botão direito do rato e selecionar
New --> Other --> Categories: SpringFramework / File Types: AbstractController
(damos à nova classe o nome OlaController)
E, completamos o conteúdo do método handleRequestInternal de modo a que a classe OlaController.java fique como se segue:
package exemplo;
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 OlaController extends AbstractController {
public OlaController() {
}
protected ModelAndView handleRequestInternal(
HttpServletRequest request,
HttpServletResponse response) throws Exception {
String modelInstance = "Olá Mundo!!!";
return new ModelAndView("ola", "modelName", modelInstance);
}
}
Depois, podemos criar a nova View (ola.jsp) na pasta WEB-INF/jsp:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>${modelName}</h1>
</body>
</html>
Para que tudo corra bem, falta conferir as configurações no ficheiro web.xml (ver artigo anterior), e efetuar as necessárias alterações no ficheiro dispatcher-servlet.xml (ver artigo anterior para melhor entender o porquê da necessidade de isto):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
...
... >
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="index.htm">indexController</prop>
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
<!--
The index controller.
-->
<bean name="indexController"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="index" />
<bean name="olaController" class="exemplo.OlaController">
</bean>
</beans>
Por fim, vamos acrescentar no ficheiro index.jsp um link para que o nosso controller seja chamado:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Welcome to Spring Web MVC project</title>
</head>
<body>
<p>Hello! This is the default welcome page for a Spring Web MVC project.</p>
<p><i>To display a different welcome page for this project, modify</i>
<tt>index.jsp</tt> <i>, or create your own welcome page then change
the redirection in</i> <tt>redirect.jsp</tt> <i>to point to the new
welcome page and also update the welcome-file setting in</i>
<tt>web.xml</tt>.</p>
<p>
<a href="ola.htm">Call Ola Controller</a>
</p>
</body>
</html>
O resultado da execução de este pequeno exemplo é uma página index.jsp, a qual quando renderizada num browser nos apresenta um link com nome "Call Ola Controller". Quando clicamos nesse link, o pedido http ao recurso ola.htm é encaminhado para o OlaController, o qual instancia dados do Model, modelInstance,
String modelInstance = "Olá Mundo!!!";
e os passa, com nome modelName, à View ola.jsp,
a qual envia para o browser HTML formatado, onde no lugar de ${modelName} colocou o valor correspondente "Olá Mundo!!!".
Referências:
- http://www.tutorialspoint.com/spring/spring_web_mvc_framework.htm
- http://viralpatel.net/blogs/spring-3-mvc-create-hello-world-application-spring-3-mvc/
Outros artigos relacionados:
Sem comentários:
Enviar um comentário