Java, Struts 2

Struts 2 – Validação utilizando Annotations


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.

Página de login antes da submissão dos dados
Formulário de login após submeter formulário com os campos vazios e com espaços em branco.
Página que é mostrada quando os campos de login correspondem a string “admin”

Um comentário em “Struts 2 – Validação utilizando Annotations”

  1. Cris, meus parabéns… Muito bom o post e aproveitando a oportunidade, você é muito gata 🙂

    abraços.

Deixe um comentário