Tutoriais‎ > ‎

Struts 2

Este tutorial apresentará um passo a passo de como criar um pequeno projeto web com struts 2, utilizando a IDE NetBeans 6.1.


Requerimentos

Struts 2.0.12
NetBeans 6.1

Links Importantes

http://www.struts2.net

Criando um projeto Web no NetBeans 6.1

Escolha New Project > Web > Web Application:



Depois escolha um nome para o seu projeto em Project Name:



Depois escolha o server de sua preferência, vamos utilizar o Tomcat que vêm na distribuição do NetBeans 6.1.



O quarto passo Frameworks não é necessário neste caso. Clique em Finish. É gerado um projeto com a estrutura abaixo, e com um arquivo index.jsp com apenas um Hello World, execute o projeto e veja se o index abre.



Agora vamos iniciar a implementação de uma tela de login para nosso sistema utilizando Struts 2. Vamos colocar as libs do Struts na pasta FipWeb/web/WEB-INF/lib.



Abaixo segue o JSP Logon.jsp.

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Login</title>
</head>
<body>
<s:form action="Logon">
    <s:textfield label="User Name" name="username"/>
    <s:password label="Password" name="password" />
    <s:submit/>
</s:form>
</body>
</html>


Veja no código acima que acrescentamos a chamada a taglib do struts (<%@ taglib prefix="s" uri="/struts-tags" %>), para podermos usar os tags form, textfield, password e submit. Para que a taglib seja usada acrescentamos no arquivo web.xml a chamada ao struts2.

    <filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.mycompany.myapp.actions</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping
O nosso forma acessa um action chamado Logon e acessa os atributos username e password. Abaixo segue a classe java LogonAction.java.

import com.opensymphony.xwork2.ActionSupport;
public class LogonAction extends ActionSupport {

    public String execute() throws Exception {

         if (isInvalid(getUsername())) return INPUT;
         if (isInvalid(getPassword())) return INPUT;
         return SUCCESS;
     }

     private boolean isInvalid(String value) {
         return (value == null || value.length() == 0);
     }

     private String username;
     public String getUsername() {
         return username;
     }
     public void setUsername(String username) {
         this.username = username;
     }

     private String password;
     public String getPassword() {
         return password;
     }
    public void setPassword(String password) {

         this.password = password;
     }
}

Nossa classe java tem os atributos username e password (com gets/sets) que serão acessados pelo JSP. Agora precisamos mapear o action Logon na classe LogonAction, para isso escreveremos o arquivo struts.xml:

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="Logon" class="LogonAction">
<result>/logon.jsp</result>
</action>
</package>
</struts>



Comments