<!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">
        <meta name="description" content="An introduction to using the Spring Framework
            in NetBeans IDE">
        <meta name="keywords" content="NetBeans, IDE, integrated development environment,
            Spring framework, frameworks, MVC, Model View Controller, web application">

        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">

        <title>Introdu&ccedil;&atilde;o ao Spring Web MVC: Tutorial do NetBeans IDE</title>
    </head>

    <body>

<!--
Copyright (c) 2009, 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-->

        <h1>Introdu&ccedil;&atilde;o ao Spring Web MVC</h1>

        <p>Este documento mostra como construir uma aplica&ccedil;&atilde;o Web <a href="http://www.oracle.com/technetwork/articles/javase/index-142890.html">MVC</a> simples usando o <a href="http://www.springframework.org/">Spring Framework</a>. A aplica&ccedil;&atilde;o permite que um usu&aacute;rio indique seu nome em um campo de texto, e ao clicar em OK, o nome &eacute; retornado e exibido em uma segunda p&aacute;gina com uma sauda&ccedil;&atilde;o de boas-vindas.</p>

        <p>O Spring Framework &eacute; uma estrutura de aplicativo de c&oacute;digo-fonte aberto popular que pode facilitar o desenvolvimento do Java EE. Ele consiste em um cont&ecirc;iner, um framework para gerenciar componentes, e um conjunto de servi&ccedil;os de snap-para interfaces de usu&aacute;rio, transa&ccedil;&otilde;es e persist&ecirc;ncia da Web. Uma parte do Spring Framework &eacute; o Spring Web MVC, um framework MVC extens&iacute;vel para criar aplicativos Web.</p>

        <p>O IDE fornece suporte embutido para Spring Framework 3.0 e 2.5. As bibliotecas da estrutura s&atilde;o empacotadas com o IDE e s&atilde;o adicionadas automaticamente ao classpath do projeto quando a estrutura &eacute; selecionado. As defini&ccedil;&otilde;es de configura&ccedil;&atilde;o s&atilde;o fornecidas, tais como nomea&ccedil;&atilde;o e mapeamento do Spring Web MVC <code>DispatcherServlet</code>. A biblioteca JSTL pode, como op&ccedil;&atilde;o, ser registrada na cria&ccedil;&atilde;o do projeto. O suporte para arquivos de configura&ccedil;&atilde;o de bean Spring XML tamb&eacute;m &eacute; fornecido, incluindo a seguinte funcionalidade:</p>

        <ul>
            <li><strong>Auto-completar de c&oacute;digo</strong>. Chamado nos arquivos de configura&ccedil;&atilde;o Spring XML para classes Java assim como refer&ecirc;ncias de bean.</li>

            <li><strong>Navega&ccedil;&atilde;o</strong>. Hyperlink de classes e propriedades Java mencionadas nas defini&ccedil;&otilde;es de bean Spring, assim como hyperlink para outras refer&ecirc;ncias de bean Spring.</li>

            <li><strong>Refatora&ccedil;&atilde;o</strong>. Renomea&ccedil;&atilde;o de refer&ecirc;ncias a classes Java nos arquivos de configura&ccedil;&atilde;o Spring XML.</li>
        </ul>

        <p>Para obter mais informa&ccedil;&otilde;es sobre o Spring Framework, visite <a href="http://www.springsource.org/">http://www.springsource.org/</a>. Para obter uma explica&ccedil;&atilde;o detalhada de como os artefatos do Spring Framework se comportam e interagem com outros objetos em um aplicativo, consulte a <a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/">Documenta&ccedil;&atilde;o de refer&ecirc;ncia do Spring Framework</a> oficial ou consulte a <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/">Documenta&ccedil;&atilde;o da API do Spring Framework</a>.</p>

        <p><strong>Conte&uacute;do</strong></p>

        <img  src="../../../images_www/articles/69/netbeans-stamp-69-70-71.png" class="stamp" width="114" alt="O conte&uacute;do desta p&aacute;gina se aplica ao IDE NetBeans 6.9, 7.0 e 7.1" title="O conte&uacute;do desta p&aacute;gina se aplica ao IDE NetBeans 6.9, 7.0 e 7.1"  />

        <ul class="toc">
            <li><a href="#setting">Configurando um novo projeto com o suporte a Spring Web MVC</a>

                <ul>
                    <li><a href="#creating">Criando um projeto de esqueleto Spring Web MVC</a></li>
                    <li><a href="#running">Executando o projeto de esqueleto</a></li>
                </ul></li>

            <li><a href="#overview">Vis&atilde;o geral do aplicativo</a></li>
            <li><a href="#service">Implementando um servi&ccedil;o</a></li>
            <li><a href="#controller">Implementando o controlador e o modelo</a></li>
            <li><a href="#view">Implementando as visualiza&ccedil;&otilde;es</a></li>
            <li><a href="#seeAlso">Consulte tamb&eacute;m</a></li>
        </ul>

        <p><strong>Para concluir este tutorial, voc&ecirc; precisa dos seguintes recursos e softwares.</strong></p>

        <table>
            <tbody>
                <tr>
                    <th class="tblheader" scope="col">Software ou recurso</th>
                    <th class="tblheader" scope="col">Vers&atilde;o necess&aacute;ria</th>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
                    <td class="tbltd1">6.8, 6.9, 7.0, 7.1, Java</td>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java Development Kit (JDK)</a></td>
                    <td class="tbltd1">vers&atilde;o 6</td>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="https://glassfish.dev.java.net/public/downloadsindex.html">Servidor GlassFish</a></td>
                    <td class="tbltd1">C&oacute;digo-fonte aberto edi&ccedil;&atilde;o 3.x</td>
                </tr>
            </tbody>
        </table>

        <p><strong class="notes">Observa&ccedil;&otilde;es:</strong></p>

        <ul>
            <li>A instala&ccedil;&atilde;o Java do IDE permite, como op&ccedil;&atilde;o, baixar e registrar o servidor GlassFish com o IDE.</li>
            <li>Se voc&ecirc; precisar comparar seu projeto com uma solu&ccedil;&atilde;o que funciona, <a href="https://netbeans.org/projects/samples/downloads/download/Samples%252FJava%2520Web%252FHelloSpring69.zip">baixe o aplicativo de amostra</a>.</li>
        </ul>


        <h2 id="setting">Configurando um novo projeto com suporte a Spring Web MVC</h2>

        <ul>
            <li><a href="#creating">Criando um projeto de esqueleto Spring Web MVC</a></li>
            <li><a href="#running">Executando o projeto de esqueleto</a></li>
        </ul>

        <div class="indent">

            <h3 id="creating">Criando um projeto de esqueleto Spring Web MVC</h3>

            <p>Comece criando um novo projeto para uma aplica&ccedil;&atilde;o Web usando o Spring Framework.</p>

            <ol>
                <li>Escolha Novo projeto (Ctrl-Shift-N; &amp;#8984-Shift-N no Mac) no menu Arquivo do IDE. Selecione a categoria Java Web e, em Projetos, selecione Aplicativo da Web. Clique em Pr&oacute;ximo.</li>

                <li>Em Nome do projeto, digite <strong>HelloSpring</strong>. Clique em Pr&oacute;ximo.</li>

                <li>Na Etapa 3: Servidor e configura&ccedil;&otilde;es, desmarque a op&ccedil;&atilde;o Habilitar inje&ccedil;&atilde;o de depend&ecirc;ncia e contextos, j&aacute; que voc&ecirc; n&atilde;o est&aacute; trabalhando com a especifica&ccedil;&atilde;o <a href="http://jcp.org/en/jsr/detail?id=299">JSR-299</a> neste tutorial.

                    <br><br>
                    Al&eacute;m disso, garanta que o servidor GlassFish esteja selecionado na lista suspensa Servidor e observe que Java EE 6 Web &eacute; a vers&atilde;o EE padr&atilde;o para esse servidor. Clique em Pr&oacute;ximo.</li>

                <li>Na Etapa 4, o painel Frameworks, selecione Spring Web MVC.

                    <br>
                    <img src="../../../images_www/articles/71/web/spring/frameworks-window.png"
                        class="margin-around b-all"
                        title="Spring Web MVC exibido no painel Frameworks"
                        alt=" Spring Web MVC exibido no painel Frameworks">

                    <p>
                    Ao selecionar o Spring Web MVC, note que a biblioteca JSTL (Biblioteca de marca&ccedil;&atilde;o padr&atilde;o de p&aacute;ginas do JavaServer) &eacute; adicionada ao classpath durante a cria&ccedil;&atilde;o do projeto por padr&atilde;o. Desmarque essa op&ccedil;&atilde;o (como na captura de tela acima), j&aacute; que o JSTL n&atilde;o &eacute; necess&aacute;rio para este tutorial. Observe tamb&eacute;m, que o IDE permite adicionar a biblioteca Spring 2.5 ao projeto, se essa for sua prefer&ecirc;ncia.</p></li>

                <li>Clique na aba Configura&ccedil;&atilde;o e observe que o assistente permite especificar o nome e o mapeamento do servlet Spring Dispatcher.

                    <br>
                    <img src="../../../images_www/articles/71/web/spring/spring-configuration.png"
                        title="Especifique o nome e o mapeamento do servlet Spring Dispatcher na aba Configura&ccedil;&atilde;o"
                        class="margin-around b-all" alt="Op&ccedil;&otilde;es de configura&ccedil;&atilde;o do Spring"></li>

                <li>Clique em Terminar. O IDE cria um projeto para o aplicativo inteiro, incluindo todos os metadados, assim como o script de constru&ccedil;&atilde;o do projeto Ant que voc&ecirc; pode inspecionar na janela Arquivos (Ctrl-2; &amp;#8984-2 no Mac). Voc&ecirc; pode ver a estrutura do modelo na janela Projetos (Ctrl-1; &amp;#8984-1 no Mac). Note tamb&eacute;m que quatro arquivos s&atilde;o abertos por padr&atilde;o no editor do IDE: <code>dispatcher-servlet.xml</code>, <code>applicationContext.xml</code>, <code>redirect.jsp</code> e <code>index.jsp</code>.</li>

                <li>Na janela Projetos, expanda o novo n&oacute; Bibliotecas do projeto e observe que JARs do Spring est&atilde;o inclu&iacute;dos no classpath do projeto.

                    <br>
                    <img src="../../../images_www/articles/71/web/spring/spring-libraries.png"
                        title="JARs do Spring est&atilde;o listados no n&oacute; Bibliotecas do projeto"
                        class="margin-around b-all" alt="JARs do Spring listados no n&oacute; Bibliotecas do projeto">
                </li>
            </ol>


            <h3 id="running">Executando o projeto de esqueleto</h3>

            <p>Antes de fazer quaisquer altera&ccedil;&otilde;es nos arquivos do projeto, tente executar o novo projeto no IDE:</p>

            <ol>
                <li>Clique no bot&atilde;o Executar projeto (<img src="../../../images_www/articles/71/web/spring/run-project-btn.png"
                    alt="bot&atilde;o Executar projeto">) na barra de ferramentas principal do IDE. O IDE inicia automaticamente o servidor GlassFish se ele ainda n&atilde;o estiver sendo executado, compila o projeto e o implanta no servidor. Note qualquer sa&iacute;da exibida na janela Sa&iacute;da do IDE (Ctrl-4; &amp;#8984-4 no Mac). A sa&iacute;da gerada termina com a mensagem <code>CONSTRU&Ccedil;&Atilde;O BEM-SUCEDIDA.</code>

                    <br>
                    <img src="../../../images_www/articles/71/web/spring/output.png"
                        alt="Janela Sa&iacute;da exibindo informa&ccedil;&otilde;es durante a execu&ccedil;&atilde;o do projeto"
                        title="A janela Sa&iacute;da exibe informa&ccedil;&otilde;es durante a execu&ccedil;&atilde;o do projeto"
                        class="margin-around b-all">

                    <br>
                    O navegador padr&atilde;o do IDE &eacute; iniciado e voc&ecirc; v&ecirc; o conte&uacute;do da visualiza&ccedil;&atilde;o da p&aacute;gina de boas-vindas (<code>/WEB-INF/jsp/index.jsp</code>).

                    <br>
                    <img src="../../../images_www/articles/71/web/spring/browser-output.png"
                        class="margin-around b-all" width="668"
                        title="A sa&iacute;da da p&aacute;gina de boas-vindas &eacute; exibida no navegador"
                        alt="Sa&iacute;da da p&aacute;gina de boas-vindas exibida no navegador"></li>
            </ol>

            <p class="tips">Quando voc&ecirc; executa o projeto no IDE, o projeto &eacute; compilado e implantado no servidor e, em seguida, aberto no navegador padr&atilde;o. Al&eacute;m disso, o IDE fornece um recurso Implantar ao salvar, que est&aacute; ativado por padr&atilde;o para projetos da Web. Quando voc&ecirc; salva arquivos no editor, o projeto &eacute; automaticamente recompilado e implantado no servidor. Para visualizar altera&ccedil;&otilde;es, voc&ecirc; pode, simplesmente, atualizar as p&aacute;ginas no navegador.</p>

            <p>Para entender o que acabou de acontecer, comece examinando o descritor de deployment do projeto (<code>web.xml</code>). Para abrir esse arquivo no editor de c&oacute;digo-fonte, clique com o bot&atilde;o direito do mouse no n&oacute; <code>WEB-INF</code> &gt; <code>web.xml</code> na janela Projetos e escolha Editar. O ponto de entrada padr&atilde;o do aplicativo &eacute; <code>redirect.jsp</code>:</p>

            <div class="indent">
<pre class="examplecode">
&lt;welcome-file-list&gt;
    &lt;welcome-file&gt;redirect.jsp&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;</pre>
            </div>

            <p>Em <code>redirect.jsp</code>, existe uma instru&ccedil;&atilde;o de redirecionamento que aponta todas as solicita&ccedil;&otilde;es para <code>index.htm</code>:</p>

            <div class="indent">
                <pre class="examplecode">&lt;% response.sendRedirect(&quot;index.htm&quot;); %&gt;</pre>
            </div>

            <p>No descritor de deployment, note que todas as requisi&ccedil;&otilde;es de padr&otilde;es de URL que correspondem a <code>*.htm</code> s&atilde;o mapeadas para <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/DispatcherServlet.html"><code>DispatcherServlet</code></a> do Spring.</p>

            <div class="indent">
<pre class="examplecode">
&lt;servlet&gt;
    &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt;
    &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;
    &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;
&lt;/servlet&gt;

&lt;servlet-mapping&gt;
    &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt;
    &lt;url-pattern&gt;*.htm&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;</pre>
            </div>

            <p class="tips">O nome completamente qualificado do servlet dispatcher, conforme mostrado acima, &eacute; <code>org.springframework.web.servlet.DispatcherServlet</code>. Essa classe &eacute; contida na biblioteca do Spring, que foi adicionada ao classpath do projeto quando o projeto foi criado. Voc&ecirc; pode verificar isso na janela Projetos, fazendo uma busca detalhada a partir do n&oacute; Bibliotecas. Localize o arquivo <code>spring-webmvc-3.0.0.RELEASE.jar</code> e, em seguida, expanda para encontrar <code>org.springframework.web.servlet</code> &gt; <code>DispatcherServlet</code>.</p>

            <p>A classe <code>DispatcherServlet</code> manipula as solicita&ccedil;&otilde;es de entrada com base nas defini&ccedil;&otilde;es de configura&ccedil;&atilde;o encontradas em <code>dispatcher-servlet.xml</code>. Abra <code>dispatcher-servlet.xml</code>, clicando em sua aba no editor. Observe o c&oacute;digo seguinte.</p>

            <div class="indent">
<pre class="examplecode">
&lt;bean id=&quot;urlMapping&quot; class=&quot;org.springframework.web.servlet.handler.<a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/handler/SimpleUrlHandlerMapping.html">SimpleUrlHandlerMapping</a>&quot;&gt; &lt;property name=&quot;mappings&quot;&gt; &lt;props&gt; &lt;prop key=&quot;/index.htm&quot;&gt;indexController&lt;/prop&gt; &lt;/props&gt; &lt;/property&gt; &lt;/bean&gt; &lt;bean id=&quot;viewResolver&quot; class=&quot;org.springframework.web.servlet.view.<a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/view/InternalResourceViewResolver.html">InternalResourceViewResolver</a>&quot; p:prefix=&quot;/WEB-INF/jsp/&quot; p:suffix=&quot;.jsp&quot; /&gt; &lt;bean name=&quot;indexController&quot; class=&quot;org.springframework.web.servlet.mvc.<a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/ParameterizableViewController.html">ParameterizableViewController</a>&quot; p:viewName=&quot;index&quot; /&gt;</pre>
            </div>

            <p>Tr&ecirc;s beans s&atilde;o definidos nesse arquivo: <code>indexController</code>, <code>viewResolver</code> e <code>urlMapping</code>. Quando a <code>DispatcherServlet</code> recebe uma solicita&ccedil;&atilde;o que coincide com <code>*.htm</code> tal como <code>index.htm</code>, ela procura por um controle no <code>urlMapping</code> que possa acomodar a solicita&ccedil;&atilde;o. Acima, voc&ecirc; v&ecirc; que existe uma propriedade <code>mappings</code> que vincula <code>/index.htm</code> a <code>indexController</code>.</p>

            <p>O ambiente de tempo de execu&ccedil;&atilde;o procura a defini&ccedil;&atilde;o de um bean chamado <code>indexController</code>, que &eacute; convenientemente fornecido pelo projeto de esqueleto. Observe que <code>indexController</code> estende <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/ParameterizableViewController.html"><code>ParameterizableViewController</code></a>. Essa &eacute; uma outra classe fornecida pelo Spring, que simplesmente retorna uma visualiza&ccedil;&atilde;o. Acima, observe que <code>p:viewName=&quot;index&quot;</code> especifica o nome da visualiza&ccedil;&atilde;o l&oacute;gica, que &eacute; resolvida por meio de <code>viewResolver</code> colocando-se o prefixo <code>/WEB-INF/jsp/</code> e o sufixo <code>.jsp</code>. Isso permite que o tempo de execu&ccedil;&atilde;o localize o arquivo no diret&oacute;rio do aplicativo e responda com a visualiza&ccedil;&atilde;o da p&aacute;gina de boas-vindas (<code>/WEB-INF/jsp/index.jsp</code>).</p>
        </div>


        <h2 id="overview">Vis&atilde;o geral do aplicativo</h2>

        <p>O aplicativo criado &eacute; composto de duas p&aacute;ginas JSP (que se chamam <em>visualiza&ccedil;&otilde;es</em> na terminologia <a href="http://www.oracle.com/technetwork/articles/javase/index-142890.html">MVC</a>). A primeira visualiza&ccedil;&atilde;o cont&eacute;m um formul&aacute;rio HTML com um campo de entrada solicitando o nome do usu&aacute;rio. A segunda visualiza&ccedil;&atilde;o &eacute; uma p&aacute;gina que exibe simplesmente uma mensagem hello contendo o nome do usu&aacute;rio.</p>

        <p>As visualiza&ccedil;&otilde;es s&atilde;o gerenciadas por um <em>controlador</em>, que recebe as solicita&ccedil;&otilde;es para o aplicativo e decide quais visualiza&ccedil;&otilde;es retornar. Ele tamb&eacute;m passa para as visualiza&ccedil;&otilde;es quaisquer informa&ccedil;&otilde;es que precisam exibir (isso &eacute; chamado de <em>modelo</em>). Esse controlador do aplicativo se chama <code>HelloController</code>.</p>

        <p>Em uma aplica&ccedil;&atilde;o Web complexa, a l&oacute;gica comercial n&atilde;o &eacute; contida diretamente no controlador. Em vez disso, outra entidade, denominada <em>servi&ccedil;o</em>, &eacute; utilizada pelo controlador sempre que ele precisar realizar a l&oacute;gica corporativa. Em nosso aplicativo, a l&oacute;gica corporativa est&aacute; limitada ao ato de processamento da mensagem ol&aacute;, sendo assim, para essa finalidade, voc&ecirc; cria um <code>HelloService</code>. <a name="service"></a>
        <h2>Implementando um servi&ccedil;o</h2>

        <p>Agora que voc&ecirc; tem certeza que seu ambiente est&aacute; configurado corretamente, &eacute; poss&iacute;vel come&ccedil;ar a estender o projeto de esqueleto de acordo com as suas necessidades. Comece criando a classe <code>HelloService</code>.</p>

        <ol>
            <li>Clique no bot&atilde;o Novo arquivo ( <img src="../../../images_www/articles/71/web/spring/new-file-btn.png"
                alt="bot&atilde;o Novo arquivo"> ) na barra de ferramentas do IDE. (Como alternativa, pressione Ctrl-N; ⌘-N no Mac.)</li>

            <li>Selecione a categoria <strong>Java</strong>, <strong>Classe Java</strong> e clique em Pr&oacute;ximo.</li>

            <li>No assistente para Nova classe Java exibido, digite <strong>HelloService</strong> para Nome da classe e digite <strong>service</strong> para Nome do pacote a fim de criar um novo pacote para a classe.</li>

            <li>Clique em Terminar. O IDE cria a nova classe e a abre no editor.</li>
        </ol>

        <p>A classe <code>HelloService</code> realiza um servi&ccedil;o muito simples. Ela pega um nome como par&acirc;metro, prepara e retorna uma <code>String</code> que inclui o nome. No editor, crie o seguinte m&eacute;todo <code>sayHello()</code> para a classe (altera&ccedil;&otilde;es em <strong>negrito</strong>).</p>

        <div class="indent">
<pre class="examplecode">
public class HelloService {

    <strong>public static String sayHello(String name) {
        return &quot;Hello &quot; + name + &quot;!&quot;;
    }</strong>
}</pre></div>


        <h2 id="controller">Implementando o controlador e o modelo</h2>

        <p>Voc&ecirc; pode usar um <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/SimpleFormController.html"><code>SimpleFormController</code></a> para manipular dados do usu&aacute;rio e determinar qual visualiza&ccedil;&atilde;o retornar.</p>

        <ol>
            <li>Abra o assistente para Novo arquivo pressionando Ctrl-N (⌘-N no Mac). Em Categorias, selecione <strong>Spring Framework</strong> em Tipos de arquivos e <strong>Controlador de formul&aacute;rio simplificado</strong>.

                <br>
                <img src="../../../images_www/articles/71/web/spring/simple-form-controller.png"
                     class="b-all margin-around" style="width:668px"
                     alt="Assistente Novo arquivo: categoria Spring Framework "
                     title="O NetBeans IDE fornece modelos para v&aacute;rios artefatos do Spring">

                <br>
                <span class="tips">O NetBeans IDE fornece modelos para v&aacute;rios artefatos do Spring, incluindo o arquivo de configura&ccedil;&atilde;o do Spring XML, o <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/AbstractController.html"><code>AbstractController</code></a> e o <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/SimpleFormController.html"><code>SimpleFormController</code></a>.</span>

            </li>


            <li>Clique em Pr&oacute;ximo.</li>

            <li>Chame a classe de <strong>HelloController</strong> e crie um novo pacote para ela, digitando <strong>controller</strong> no campo de texto Pacote. Clique em Terminar. O IDE cria a nova classe e a abre no editor.</li>

            <li>Especifique as propriedades do controlador, removendo o coment&aacute;rio dos m&eacute;todos setter exibidos por padr&atilde;o no modelo da classe. Para retirar os coment&aacute;rios do trecho de c&oacute;digo, realce o c&oacute;digo como na imagem a seguir e pressione Ctrl-/ (&amp;#8984-/ no Mac).

                <br>
                <img src="../../../images_www/articles/71/web/spring/comment-out.png"
                     class="b-all margin-around"
                     alt="Trecho de c&oacute;digo real&ccedil;ado no editor"
                     title="Realce trechos de c&oacute;digo e pressione Ctrl-/ para alternar coment&aacute;rios">

                <br>
                <span class="tips">Pressionar Ctrl-/ (&amp;#8984-/ no Mac) alterna os coment&aacute;rios no editor.</span>
            </li>

            <li>Fa&ccedil;as as altera&ccedil;&otilde;es a seguir (altera&ccedil;&otilde;es em <strong>negrito</strong>).

<pre class="examplecode">
public HelloController() {
    <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/BaseCommandController.html#setCommandClass(java.lang.Class)">setCommandClass</a>(<strong>Name</strong>.class);
    <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/BaseCommandController.html#setCommandName(java.lang.String)">setCommandName</a>(&quot;<strong>name</strong>&quot;);
    <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/SimpleFormController.html#setSuccessView(java.lang.String)">setSuccessView</a>(&quot;<strong>hello</strong>View&quot;);
    <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/SimpleFormController.html#setFormView(java.lang.String)">setFormView</a>(&quot;<strong>name</strong>View&quot;);
}</pre>

                <p>Definir <code>FormView</code> permite que voc&ecirc; defina o nome da visualiza&ccedil;&atilde;o que &eacute; usada para exibir o formul&aacute;rio. Essa &eacute; a p&aacute;gina que cont&eacute;m o campo de texto que permite aos usu&aacute;rios indicar seu nome. Configurar <code>SuccessView</code> da mesma forma permite que voc&ecirc; defina o nome da visualiza&ccedil;&atilde;o que deve ser exibida durante um envio bem sucedido. Quando configura <code>CommandName</code>, voc&ecirc; define o nome do comando no modelo. Nesse caso, o comando &eacute; o objeto do formul&aacute;rio com os par&acirc;metros de solicita&ccedil;&atilde;o vinculados a ele. Configurar <code>CommandClass</code> permite que voc&ecirc; defina o nome da classe do comando. Uma inst&acirc;ncia dessa classe &eacute; preenchida e validada em cada solicita&ccedil;&atilde;o.</p>

                <p>Observe que um erro &eacute; sinalizado pra <code>Name</code> no m&eacute;todo <code>setCommandClass()</code>:</p>

                <img src="../../../images_www/articles/71/web/spring/set-command-class.png" class="b-all margin-around"
                    alt="O editor exibindo um erro para setCommandClass()"
                    title="Um identificador de erro &eacute; exibido para setCommandClass()">

                <p>
                Voc&ecirc; precisa criar a classe <code>Nome</code> como um bean simples para manter as informa&ccedil;&otilde;es de cada requisi&ccedil;&atilde;o.</p></li>

            <li>Na janela Projetos, clique com o bot&atilde;o direito do mouse no n&oacute; do projeto e escolha Novo &gt; Classe Java. O assistente para Nova classe Java &eacute; exibido.</li>

            <li>Indique <strong>Name</strong> para o Nome da classe, e para Pacote, selecione <strong>controller</strong> na lista suspensa.</li>

            <li>Clique em Terminar. A classe <code>Nome</code> &eacute; criada e aberta no editor.</li>

            <li>Para a classe <code>Nome</code>, crie um campo denominado <code>valor</code> e, em seguida, crie os m&eacute;todos do acessor (por exemplo, os m&eacute;todos getter e setter) para esse campo. Inicie declarando o campo <code>valor</code>:

<pre class="examplecode">
public class Name {

    <strong>private String value;</strong>

}</pre>
                <p class="tips">Para digitar &quot;<code>private</code>&quot; rapidamente, voc&ecirc; pode digitar &quot;<code>pr</code>&quot; e pressionar Tab. O modificador de acesso &quot;<code>private</code>&quot; &eacute; automaticamente adicionado &agrave; linha. Esse &eacute; um exemplo de como utilizar os modelos de c&oacute;digo do editor. Para obter uma lista completa de modelos de c&oacute;digo, escolha Ajuda &gt; Cart&atilde;o de atalhos do teclado.</p>

                <br><a name="createAccessors"></a> O IDE pode criar m&eacute;todos do assessor para voc&ecirc;. No editor, clique com o bot&atilde;o direito do mouse em <code>valor</code> e escolha Inserir c&oacute;digo (ou pressione Alt-Insert; Ctrl-I no Mac). No menu pop-up, escolha Getter e Setter.

                <br>
                <img src="../../../images_www/articles/71/web/spring/generate-code.png"
                    class="margin-around b-all"
                    alt="O menu pop-up Gerar c&oacute;digo exibido no editor"
                    title="O menu pop-up Gerar c&oacute;digo permite definir os m&eacute;todos do acessor"></li>


            <li>Na caixa de di&aacute;logo exibida, selecione a op&ccedil;&atilde;o <code>value : String</code>e clique em OK. Os m&eacute;todos <code>getValue()</code> e <code>setValue()</code> s&atilde;o adicionados &agrave; classe <code>Name</code>:

<pre class="examplecode">
public String getValue() {
    return value;
}

public void setValue(String value) {
    this.value = value;
}</pre></li>

            <li>Pressione Ctrl-Tab e escolha <code>HelloController</code> para retornar para a classe <code>HelloController</code>. Observe que o identificador de erro anterior desapareceu, mas a classe <code>Nome</code> existe agora.</li>
            <li>Exclua o m&eacute;todo <code>doSubmitAction()</code> e remova os coment&aacute;rios do m&eacute;todo <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/SimpleFormController.html#setFormView(java.lang.String)"><code>onSubmit()</code></a>. O m&eacute;todo <code>onSubmit()</code> permite que voc&ecirc; crie seu pr&oacute;prio <code>ModelAndView</code>, que &eacute; o necess&aacute;rio aqui. Fa&ccedil;a as seguintes altera&ccedil;&otilde;es:

<pre class="examplecode">@Override
protected ModelAndView onSubmit(
            HttpServletRequest request,
            HttpServletResponse response,
            Object command,
            BindException errors) throws Exception {

        Name name = (Name) command;
        ModelAndView mv = new ModelAndView(getSuccessView());
        mv.addObject(&quot;helloMessage&quot;, helloService.sayHello(name.getValue()));
        return mv;
}</pre>

                Como indicado acima, o <code>comando</code> &eacute; reconvertido como um objeto <code>Name</code>. Uma inst&acirc;ncia de <code>ModelAndView</code> &eacute; criada, e a visualiza&ccedil;&atilde;o de sucesso &eacute; obtida por meio de um getter em <code>SimpleFormController</code>. Finalmente, o modelo &eacute; preenchido com os dados. O &uacute;nico item em nosso modelo &eacute; a mensagem hello obtida do <code>HelloService</code> criado anteriormente. Use o m&eacute;todo <code>addObject()</code> para adicionar a mensagem hello ao modelo sobe o nome <code>helloMessage</code>.</li>

            <li>Corrija os erros de importa&ccedil;&atilde;o clicando com o bot&atilde;o direito do mouse no editor e escolhendo Corrigir importa&ccedil;&otilde;es (Ctrl-Shift-I; ⌘-Shift-I no Mac).

                <br>
                <img src="../../../images_www/articles/71/web/spring/fix-imports70.png"
                    class="margin-around b-all" alt="Caixa de di&aacute;logo Corrigir todas as importa&ccedil;&otilde;es"
                    title="Pressione Ctrl-Shift-I para corrigir as importa&ccedil;&otilde;es do seu arquivo">
                <p class="notes"><strong>Observa&ccedil;&atilde;o.</strong> Confirme se <strong><tt>org.springframework.validation.BindException</tt></strong> e <strong><tt>org.springframework.web.servlet.ModelAndView</tt></strong> est&atilde;o selecionados na caixa de di&aacute;logo Corrigir todas as importa&ccedil;&otilde;es.</p></li>

            <li>Clique em OK. A instru&ccedil;&atilde;o de importa&ccedil;&atilde;o seguinte &eacute; adicionada ao in&iacute;cio do arquivo:

<pre class="examplecode">importe <a href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/ModelAndView.html">org.springframework.web.servlet.ModelAndView</a>;</pre>

                Conforme informado na documenta&ccedil;&atilde;o da API, essa classe &quot;representa um modelo e uma visualiza&ccedil;&atilde;o retornados por um manipulador, a serem resolvidos por um <code>DispatcherServlet</code>. A visualiza&ccedil;&atilde;o pode tomar a forma de um nome de visualiza&ccedil;&atilde;o do <code>String</code>, que precisar&aacute; ser resolvido por um objeto <code>ViewResolver</code>, como alternativa, um objeto <code>Visualiza&ccedil;&atilde;o</code> pode ser especificado diretamente. O modelo &eacute; um <code>Mapa</code>, que permite o uso de v&aacute;rios objetos, classificados por nome&quot;.

                <br><br>
                Note que nesse est&aacute;gio, nem todos os erros s&atilde;o corrigidos, pois a classe ainda n&atilde;o pode identificar a classe <code>HelloService</code> e n&atilde;o utiliza seu m&eacute;todo <code>sayHello()</code>.</li>

            <li>No <code>HelloController</code>, declare um campo privado chamado <code>HelloService</code>:

<pre class="examplecode">private HelloService helloService;</pre>

                Em seguida, crie um m&eacute;todo setter p&uacute;blico para o campo:

<pre class="examplecode">public void setHelloService(HelloService helloService) {
    this.helloService = helloService;
}</pre>

                Finalmente, clique com o bot&atilde;o direito do mouse no editor e escolha Corrigir importa&ccedil;&otilde;es (Ctrl-Shift-I; ⌘-Shift-I no Mac). A instru&ccedil;&atilde;o a seguir &eacute; adicionada ao in&iacute;cio do arquivo:

<pre class="examplecode">import service.HelloService;</pre>

                Todos os erros devem ser corrigidos agora.</li>

            <li>Registre <code>HelloService</code> em <code>applicationContext.xml</code>. Abra <code>applicationContext.xml</code> no editor e insira a seguinte declara&ccedil;&atilde;o de bean:

<pre class="examplecode">
&lt;bean name=&quot;helloService&quot; class=&quot;service.HelloService&quot; /&gt;</pre>

                <div class="tips">O suporte a Spring no IDE inclui auto-completar de c&oacute;digo nos arquivos de configura&ccedil;&atilde;o XML para classes Java, assim como refer&ecirc;ncias de bean. Para chamar o autocompletar de c&oacute;digo, pressione Ctrl-Espa&ccedil;o quando estiver trabalhando no editor:

                <br>
                <img src="../../../images_www/articles/71/web/spring/code-completion.png"
                    alt="Auto-completar de c&oacute;digo chamado ao pressionar Ctrl-Espa&ccedil;o"
                    title="Auto-completar de c&oacute;digo chamado ao pressionar Ctrl-Espa&ccedil;o"
                    class="b-all margin-around"></div></li>

            <li>Registre <code>HelloController</code> em <code>dispatcher-servlet.xml</code>. Abra <code>dispatcher-servlet.xml</code> no editor e insira a seguinte declara&ccedil;&atilde;o de bean:

<pre class="examplecode">
&lt;bean class=&quot;controller.HelloController&quot; p:helloService-ref=&quot;helloService&quot;/&gt;</pre></li>
        </ol>


        <h2 id="view">Implementando as visualiza&ccedil;&otilde;es</h2>

        <p>Para implementar a visualiza&ccedil;&atilde;o desse projeto, voc&ecirc; precisa criar duas p&aacute;ginas JSP. A primeira, que voc&ecirc; pode chamar de <code>nameView.jsp</code>, serve como a p&aacute;gina de boas-vindas e permite que um usu&aacute;rio insira um nome. A outra p&aacute;gina, <code>helloView.jsp</code>, exibe uma mensagem de sauda&ccedil;&atilde;o que inclui o nome de entrada. Comece criando <code>helloView.jsp</code>.</p>

        <ol>
            <li id="create-jsp">Na janela Projetos, clique com o bot&atilde;o direito do mouse no n&oacute; WEB-INF &gt; <code>jsp </code> e escolha Novo &gt; JSP. O assistente para Novo arquivo JSF se abre. Chame o arquivo de <strong>helloView</strong>.</li>

            <li>Clique em Terminar. A nova p&aacute;gina JSP &eacute; criada na pasta <code>jsp</code> e &eacute; aberta no editor.</li>

            <li>No editor, altere o t&iacute;tulo do arquivo para <code>Ol&aacute;</code> e altere a mensagem de sa&iacute;da para recuperar o <code>helloMessage</code> do objeto <code>ModelandView</code> criado em <code>HelloController</code>.


<pre class="examplecode">
&lt;head&gt;
    &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
    &lt;title&gt;<strong>Hello</strong>&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;<strong>${helloMessage}</strong>&lt;/h1&gt;
&lt;/body&gt;
</pre></li>

            <li>Crie outra p&aacute;gina JSP da mesma maneira <a href="#create-jsp">como acima</a>, mas nomeie-o de <code>nameView</code>.</li>

            <li>No editor, adicione a declara&ccedil;&atilde;o da biblioteca de marca&ccedil;&otilde;es do Spring a seguir a <code>nameView.JSP</code>.

<pre class="examplecode">&lt;%@taglib uri=&quot;http://www.springframework.org/tags&quot; prefix=&quot;spring&quot; %&gt;</pre>

                Isso importa a <a href="http://static.springframework.org/spring/docs/2.5.x/reference/spring.tld.html">biblioteca de marcas Spring</a>, que cont&eacute;m marcas &uacute;teis durante a implementa&ccedil;&atilde;o de visualiza&ccedil;&otilde;es como p&aacute;ginas JSP.

            <li>Altere o conte&uacute;do das marcas <code>&lt;title&gt;</code> e <code>&lt;h1&gt;</code> para que se leia: <code>Indique seu nome</code>.</li>

            <li>Insira o c&oacute;digo a seguir abaixo das marca&ccedil;&otilde;es <code>&lt;h1&gt;</code>:

<pre class="examplecode">
&lt;spring:nestedPath path=&quot;name&quot;&gt;
    &lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
        Name:
        &lt;spring:bind path=&quot;value&quot;&gt;
            &lt;input type=&quot;text&quot; name=&quot;${status.expression}&quot; value=&quot;${status.value}&quot;&gt;
        &lt;/spring:bind&gt;
        &lt;input type=&quot;submit&quot; value=&quot;OK&quot;&gt;
    &lt;/form&gt;
&lt;/spring:nestedPath&gt;
</pre>

                <a href="http://static.springframework.org/spring/docs/2.5.x/reference/spring.tld.html#spring.tld.bind">spring:bind</a> permite que voc&ecirc; vincule uma propriedade de bean. A marca de vincula&ccedil;&atilde;o fornece um status de e valor de vincula&ccedil;&atilde;o, que voc&ecirc; usa como o nome e o valor do campo de entrada. Dessa forma, quando o formul&aacute;rio &eacute; enviado, o Spring saber&aacute; como extrair o valor enviado. Aqui, nossa classe de comando (<code>controller.Name</code>) possui uma propriedade <code>value</code>, portanto, voc&ecirc; define <code>path</code> como <code>value</code>.

                <br><br>
                <a href="http://static.springframework.org/spring/docs/2.5.x/reference/spring.tld.html#spring.tld.nestedPath">spring:nestedPath</a> permite que voc&ecirc; anexe um caminho especificado a um bean. Sendo assim, quando usado com <code>spring:bind</code> como mostrado acima, o caminho para o bean se torna: <code>name.value</code>. Como voc&ecirc; lembra, o nome do comando de <code>HelloController</code> &eacute; <code>name</code>. Portanto, esse caminho se refere &agrave; propriedade <code>value</code> de um bean chamado <code>name</code> no escopo da p&aacute;gina.

            <li>Altere o ponto de entrada relativo do aplicativo. Atualmente, o ponto de entrada do projeto ainda &eacute; <code>index.htm</code> que, como descrito em <a href="#running">Executando o projeto de esqueleto</a> acima, redireciona para <code>WEB-INF/jsp/index.jsp</code>. Voc&ecirc; pode especificar um ponto de entrada para o projeto quando ele &eacute; implantado e executado. Na janela Projetos, clique com o bot&atilde;o direito do mouse no n&oacute; do projeto e escolha Propriedades. A caixa de di&aacute;logo Propriedades do projeto &eacute; exibida. Em Categorias, selecione Executar. No campo URL relativa, digite <code>/hello.htm</code>, em seguida, clique em OK.

                <br><br>
                Nesse momento, voc&ecirc; deve estar pensando onde o mapeamento de <code>hello.htm</code> para <code>HelloController</code> se encontra. Voc&ecirc; n&atilde;o adicionou um mapeamento para o bean <code>urlMapping</code>, como &eacute; o caso de <code>index.htm</code>, a p&aacute;gina de boas-vindas do projeto de esqueleto. Isso &eacute; poss&iacute;vel com um pouco da m&aacute;gica do Spring fornecida pela defini&ccedil;&atilde;o do bean seguinte em <code>dispatcher-servlet.xml</code>:

<pre class="examplecode">&lt;bean class=&quot;org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping&quot;/&gt;</pre>

                Esse bean &eacute; respons&aacute;vel por criar automaticamente um mapeamento de URL para todos os controladores registrados no arquivo. Ele pega o nome de classe totalmente qualificado do controlador (em nosso caso, <code>controller.HelloController</code>) e retira o nome do pacote e o sufixo <code>Controller</code>, em seguida, usa o resultado como um mapeamento de URL. Portanto, para <code>HelloController</code>, ele cria um mapeamento <code>hello.htm</code>. Entretanto, essa m&aacute;gica n&atilde;o funciona para controladores que est&atilde;o inclu&iacute;dos no Spring Framework, tal como <code>ParameterizableViewController</code>. Eles requerem mapeamento expl&iacute;cito.</li>

            <li>Na janela Projetos, clique com o bot&atilde;o direito do mouse no n&oacute; do projeto e escolha Executar. Isso compila, implanta e executa o projeto. Seu navegador padr&atilde;o se abre exibindo <code>hello.htm</code> como o <code>nameView</code> do projeto:

                <br>
                <img src="../../../images_www/articles/71/web/spring/name-view.png"
                    alt="nameView exibido em um navegador"
                    title="nameView &eacute; exibido em um navegador"
                    class="b-all margin-around">

                <br>
                Indique seu nome no campo de texto e clique Enter. O <code>helloView</code> &eacute; exibido com uma mensagem de sauda&ccedil;&atilde;o:

                <br>
                <img src="../../../images_www/articles/71/web/spring/hello-view.png"
                    alt="helloView exibido em um navegador"
                    title="helloView &eacute; exibido em um navegador"
                    class="b-all margin-around"></li>
        </ol>


        <div class="feedback-box">
            <a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Introduction%20to%20Spring">Envie-nos seus coment&aacute;rios</a></div>

        <br style="clear:both;">


        <h2 id="seeAlso">Consulte tamb&eacute;m</h2>

        <p>Isso inclui a Introdu&ccedil;&atilde;o ao Spring Framework no NetBeans IDE. Este documento demonstrou como construir um aplicativo da Web MVC simples no NetBeans IDE utilizando o Spring Framework e apresentou-lhe a interface do IDE para o desenvolvimento de aplicativos da Web.</p>

        <p>Voc&ecirc; &eacute; encorajado a continuar a aprender sobre o Spring Framework trabalhando em outros tutoriais do NetBeans IDE, tal como <a href="http://sites.google.com/site/springmvcnetbeans/step-by-step/">Desenvolvendo um aplicativo Spring Framework MVC passo a passo utilizando o NetBeans e o GlassFish</a>. Esse &eacute; o <a href="http://static.springframework.org/docs/Spring-MVC-step-by-step/">tutorial oficial do Spring Framework</a> por Thomas Risberg que foi adaptado para NetBeans IDE por Arulazi Dhesiaseelan.</p>

        <p>Muitos dos recursos de m&oacute;dulo do Spring NetBeans tamb&eacute;m podem ser aplicados a aplicativos Spring framework n&atilde;o baseados na Web.

        <p>Para outros tutoriais relacionados, consulte os seguintes recursos:</p>

        <ul>
            <li><a href="../../docs/web/framework-adding-support.html">Adicionando suporte para um Web Framework</a> Um guia b&aacute;sico que descreve como adicionar suporte instalando um plug-in de framework da Web usando a Central de atualiza&ccedil;&otilde;es do NetBeans .</li>

            <li><a href="../../docs/web/jsf20-intro.html">Introdu&ccedil;&atilde;o ao JavaServer Faces 2.0</a>. Demonstra como adicionar suporte do JSF 2.0 a um projeto existente, beans gerenciados por fios e como aproveitar os modelos de Facelets.</li>
        </ul>

    </body>
</html>
