Versão ALPHA! Este artigo está em versão 'Alpha' e, portanto, não foi ainda revisado corretamente

Implementando Serviços

Introdução

Após criar o teste de serviço da faculdade onde queremos listar o nome e a matricula de todos os alunos de um determinado curiso, implementaremos as classes e o arquivo html que realizam o serviço definido no teste.

Acesso rápido

Para acessar os tópicos siga o checklist abaixo: <table class="table table-bordered">

Criando a classe de serviço e o método get Criando a classe Tabela
<tr>
<td class="tac col2em">
  <a id="topo_0_2"><input type="checkbox" /></a>
</td>
<td>
<a href="#0_2">Criando a página web </a>
</td>

</tr> </table>

Criando a classe de serviço e o método get

A princípio, devemos indicar que esta classe será um serviço.
Adicione a annotation @Service na classe ServicoDeAluno.

@Service
public class ServicoDeAluno {
}

Criaremos o método get semelhante aos métodos post e put dos artigos Implementando Form Create e Implementando Form Update respectivamente. Este método também conterá a consulta.

@Get
public Reply<?> get(Request request, @Named("curso") String _curso) {
  FaculdadeRequestWrapper wrapper = new FaculdadeRequestWrapper(request);
  
  List<ConsultaDeAlunoDTO> dtos = consulta.list(wrapper, _curso);
  TabelaDeAluno tabela = new TabelaDeAluno(dtos);

  return Reply.with(tabela).template(tabela.getClass());
}

Nota: NÃO esqueça de adicionar a annotation @Get

Utilize o atalho Ctrl + 1 para criar a variável de instância de ConsultaDeAluno e o atalho Alt + S e depois a tecla A para criar o construtor da classe

private final ConsultaDeAluno consulta;

public ServicoDeAluno(ConsultaDeAluno consulta) {
  this.consulta = consulta;
}

Utilize o atalho Ctrl + 1 para criar a classe TabelaDeAluno no pacote ui.bricks do projeto onde será responsável por “enviar” os dados a página TabelaDeAluno.html que criaremos futuramente.

Criando a classe Tabela

Vamos definir os atributos e métodos da classe TabelaDeAluno.
Com a classe criada, acrescente a annotation @Show onde definimos a qual página html os dados serão listados. Por padrão, utilizamos o mesmo nome da classe à página, seguido da extensão .html

@Show("TabelaDeAluno.html")
public class TabelaDeAluno {
}

Como passamos ao construtor da classe de serviço um objeto do tipo List, precisamos criar um construtor e uma variável nesta classe. Utilize novamente o atalho Alt + S e depois a tecla A para criar o construtor a partir da variável.

@Show("TabelaDeAluno.html")
public class TabelaDeAluno {

  private final List<ConsultaDeAlunoDTO> dtos;

  public TabelaDeAluno(List<ConsultaDeAlunoDTO> dtos) {
    this.dtos = dtos;
  }

}

Criaremos um getter para este atributo que será utilizado/definido em TabelaDeAluno.html

Importante: Devemos utilizar o conceito de JavaBeans nesta classe, isto é, a questão dos nomes de getters e setters devem seguir a padronização do JavaBeans. Leia mais sobre este assunto aqui.

public List<ConsultaDeAlunoDTO> getDtos() {
  return dtos;
}

Para criar este getter rapidamente utilize o atalho Alt + S e depois a tecla R.

Temos agora as duas classes finalizadas, ServicoDeAluno e TabelaDeAluno.

Criando a página web

Como comentamos, os dados deveram aparecer em uma página para que possam ser visualizados. Tal página será criada com o nome TabelaDeAluno.html

<!doctype html>
<html>
<body>
  @ShowIf(dtos.isEmpty())
  <p>Nenhum resultado encontrado.</p>

  @ShowIf(!dtos.isEmpty())
  <table>
    <thead>
      <tr>
        <th>Nome</th>
        <th>Matricula</th>
      </tr>
    </thead>
    <tbody>
      @Repeat(items=dtos, var="dto")
      <tr>
        <td>${dto.nome}</td>
        <td>${dto.matricula}</td>
      </tr>
    </tbody>
  </table>
</body>
</html>

Com este código fica mais claro o que haviamos comentado em relação aos getters. Note que a classe TabelaDeAluno possui um método getDtos() e partir deste padrão junto as anotações @ShowIf @Repeat e ${objeto.atributo} executamos os métodos getters definidos nas classes.
É importante ressaltar que o objeto dto DEVE possuir um getter para nome e matricula

Com as anotações @ShowIf podemos testar algumas condições, como por exemplo, se a lista está vazia.
Quanto a @Repeat temos um interator da lista. É neste momento que os dados do aluno começam a ser inseridos na página para visualização.

Para mais informações acesse os códigos nos links abaixo:

ServicoDeAluno.java
TabelaDeAluno.java
TabelaDeAluno.html

Retornar aos Procedimentos! Voltar!
Leia mais uma vez! Revisar!


 
 

objectos, Fábrica de Software LTDA

  • R. Demóstenes, 627. cj 123
  • 04614-013 - Campo Belo
  • São Paulo - SP - Brasil
  • +55 11 5093-8640
  • +55 11 2359-8699
  • contato@objectos.com.br