Tutorial Mentawai #9 – Tags

Padrão

Olá pessoal!

O Mentawai nos fornece várias tags JSP que funcionam de forma integrada ao framework. Dessa forma, fica mais simples obter os dados dos formulários, ou mesmo montar a sua página de acordo com o resultado de uma action.

Por exemplo, para a montagem de formulários, é possível utilizar, por exemplo, as seguintes tags:

<mtw:form action="Adicionar.mtw" method="post">
    Nome: <mtw:input type="text" name="nome" size="50" maxlength="60" />
    Grupo: <mtw:select name="grupo" list="grupos" emptyField="true" />
    Usuário: <mtw:input type="text" name="usuario" size="20" maxlength="30" />
    Senha: <mtw:input type="password" name="senha" size="20" maxlength="20" />
    Confirme a Senha: <mtw:input type="password" name="confirmacao" size="20" maxlength="20" />
    Zip: <mtw:input type="text" name="zip" size="20" maxlength="20" />
    Aceita os termos?: <mtw:input type="checkbox" name="aceitacao" value="1" />
    <input type="submit" value="Cadastrar" />
</mtw:form>

Como pode ser percebido, as tags se assemelham muito às tags padrão do HTML. A ideia é exatamente essa. Um detalhe interessante, é na tag mtw:select, que possui um atributo list. Nesse caso em questão, para carregar o formulário corretamente, o Mentawai espera na output uma Collection na output, sob o nome de grupos. O Mentawai se encarregará de popular as opções do select. Um artifício interessante é montar essa lista utilizando um Map de Strings e Integer, colocando Strings no formulário e obtendo inteiros na hora de pegar o valor selecionado dentro da action.

Falando em listas, caso você queira listar o conteúdo de uma lista (Collection) na sua página, você pode utilizar as tags de repetição do Mentawai. Vamos supor que temos uma lista chamada carros na input da página.

<mtw:list value="carros">

Carros disponíveis
<mtw:isEmpty>
   Nenhum carro disponível
</mtw:isEmpty>

<mtw:loop var="c">
    Modelo: <mtw:out value="c.modelo" />
    Fabricante: <mtw:out value="c.fabricante" list="fabricantes" />
    Ano: <mtw:out value="c.ano" />
</mtw:loop>

</mtw:list>

Apenas reforçando, para a correta exibição da listagem, há a necessidade de que uma lista chamada fabricantes esteja na input da página.

Finalizando, é possível também criar tags de condição dentro da JSP, facilitando na hora de montar páginas personalizadas de acordo com o conteúdo da saída de uma action.

<mtw:if test="usuario.admimistrador" value="true">
   Você é um administrador! <br/>
</mtw:if>

<mtw:if test="resultado.status" value="2">
    O seu status está pendente. Cheque a sua conta por favor!
</mtw:if>

<mtw:if test="cidade" value="Pouso Alegre">
    Opa! Você é de Pouso Alegre?
</mtw:if>

Bom pessoal, é isso! Até a próxima!