Tutorial Mentawai #6 – Validação

Olá pessoal! No post de hoje, veremos como funciona a validação no Mentawai.

O framework nos fornece uma ótima maneira de validar formulários. Nesta validação basta adicionar as regras do próprio Mentawai ou definir as suas próprias. O primeiro passo para a utilização é configurar o ValidationFilter no ApplicationManager. Muito simples:

@Override
public void loadFilters() {
     filter(new ValidationFilter());
}

Agora, na sua Action você deve fazê-la implementar a interface Validatable e criar a sua implementação do método prepareValidator(). É nesse método que definimos as restrições que deverão ser validadas. Segue um exemplo.

public class HelloAction extends BaseAction implements Validatable {

	@Override
	public void prepareValidator(Validator val, String method) {
		val.requiredFields("Campo obrigatório!", "nome", "cpf", "email");

		val.add("cpf", MethodRule.getInstance(this, "validaCpf"), "CPF Inválido!");
		val.add("email", EmailRule.getInstance(), "E-mail Inválido!");
	}

	boolean validaCpf(String cpf) {
		... implementação ...

		return true;
	}

	@Override
	public String execute() throws Exception {
		... implementação ...

		return SUCCESS;
	}
}

Neste exemplo utilizamos alguns exemplos de “rules” ou regras que o Mentawai oferece. Na documentação lá no site oficialvocê encontra os outros filtros que ele  oferece, ou mesmo como implementar sua própria regra de validação (ele possui, por exemplo, CPF, tempo, hora, CNPJ). Lá na JSP, basta adicionar as tags onde o erro deve ser exibido:

...
CPF: <mtw:input type="text" name="cpf" />
<mtw:outError field="cpf">
    <font color="red"><mtw:out /></font>
</mtw:outError>
...

E é isso. Só não se esqueça de configurar no ApplicationManager a consequência ERROR, que é retornada caso o formulário não passe pelas regras de validação.

action("/Hello", HelloAction.class).
    on(SUCCESS, fwd("/jsp/hello.jsp")).
    on(ERROR, fwd("/jsp/index.jsp"));

No exemplo no site oficial, é possível obter maiores detalhes sobre o processo. Não há muito o que ser dito, já que o exemplo é bastante completo! (:

Tutorial Android #3 – Aprimorando o Formulário

Olá pessoal! Hoje, dando continuidade aos nossos tutoriais sobre desenvolvimento para Android, vamos continuar com a nossa aplicação da Lista de Restaurantes. No post de hoje, vamos melhorar a aparência do nosso formulário, alterando seu layout para o estilo TableLayout.

Abra o arquivo main.xml dentro do diretório res/layout e edite-o, deixando-o dessa forma:

Continue lendo!

Tutorial Android #2 – Obtendo Dados do Formulário

Olá leitores! No post anterior começamos o nosso projeto Android criando um formulário simples, modificando apenas o arquivo XML de layout. Hoje, vamos ver como obter o que foi digitado no formulário para manipularmos dentro de uma Activity. Se você não tem o projeto anterior, pode baixar aqui. Para abrir o projeto, descompacte-o dentro de seu workspace, e em seguida, no Eclipse, vá em File -> Import… e procure pela opção Existing Projects into Workspace, dentro da categoria General.

O primeiro passo é criar a classe de negócio (model) que armazenará os dados vindos do formulário. Crie uma classe chamada Restaurante e salve-a no pacote net.rafaeltoledo.restaurante.model. A classe terá os campos nome e endereco, ambos to tipo String. Lembrando que sempre encapsulamos os campos das classes de negócio. A classe Restaurante ficará assim:

Continue lendo!

Tutorial Android #1 – Criando um Formulário Simples

Olá pessoal! Hoje vamos começar uma nova série de posts, onde vamos abordar a criação de aplicativos móveis para aplicativos Android. Ao contrário das outras séries, nesta vamos fazer algo diferente. Teremos um projeto que será incrementado a cada post, adicionando novos conceitos e técnicas.

Como criar um dispositivo virtual e como criar um novo projeto, nós já vimos em posts anteriores. Então, crie um novo projeto chamado ListaDeRestaurantes.  O nome do aplicativo será Lista de Restaurantes e o nome da activity será ListaRestaurantes. O pacote pode ser o que você achar melhor.

Continue lendo!