As seguinte bibliotecas foram utilizadas:
- commons-logging-1.1.1.jar
- freemarker-2.3.8.jar
- ognl-2.6.11.jar
- struts2-core-2.0.11.1.jar
- xwork-2.0.4.jar
Primeiro será configurado o arquivo struts.xml da seguinte forma:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml" /> <package name="default" extends="struts-default"> <action name="Login"> <result name="input">index.jsp</result> <result name="success">success.jsp</result> <result name="error">index.jsp</result> </action> </package> </struts>
Agora será criada uma página index.jsp com um formulário para login.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Login</title> <s:head /> </head> <body> <s:form action="Login" method="post" validate="true" > <s:actionmessage/> <s:textfield name="username" label="Username" size="14" required="true" /> <s:password name="password" label="Password" size="14" required="true" /><br/> <s:submit name="login" value="Login" type="button" align="center" method="post" required="true"/> </s:form>
A tag <s:head /> adiciona um link ao css e javascripts utilizado para redenrizar os elementos do struts na página. Também é colocado o atributo validate=”true” e nos campo username e password é colocado o atributo required=”true”.
Também será criada uma página que será exibida quando o usuário e senha digitados no formulário de login correspoderem a string “admin”.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Success</title> </head> <body> <h1>Success Login! </h1> </body> </html>
Agora será criada uma classe para ser a Action e que se chamará LoginAction:
public class LoginAction extends ActionSupport{ private static final long serialVersionUID = -1200187785923962284L; private String username; private String password; public String login(){ if(username == "admin" && password == "admin"){ return "success"; } return "error"; } public String post(){ return "success"; } /** * @param username the username to set */ @RequiredStringValidator(type=ValidatorType.SIMPLE, trim=true, fieldName="username", message="Fill username field") public void setUsername(String username) { this.username = username; } /** * @return the username */ public String getUsername() { return username; } /** * @param password the password to set */ @RequiredStringValidator(type=ValidatorType.SIMPLE, trim=true, fieldName="password", message="Fill password field") public void setPassword(String password) { this.password = password; } /** * @return the password */ public String getPassword() { return password; } }
Para a validação, foram colocados nos métodos sets dos atributos a anotação @RequiredStringValidator colocando o tipo de validação, como se trata de textfields será utilizado o o tipo SIMPLE. Colocamos a função trim como true, passamos o nome do campo a ser validado e mensagem que deve aparecer caso a validação falhe.
Cris, meus parabéns… Muito bom o post e aproveitando a oportunidade, você é muito gata 🙂
abraços.