Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Video: Mini-curso de Desenvolvimento Web no Eclipse - Parte 10 (Aula 9) - Validação

Veremos nesta aula como utilizar o framework de validação que já vem pronto no Struts2 para assegurar que os dados que recebemos dos formulários são válidos e prontos para processamento.

Titulo:
 
Duração: 26:31

Mini-resumo: Continuando o aprofundamento no framework Struts2, aprenderemos como utilizar o framework de validação que já vem pronto no Struts2 para assegurar que os dados que recebemos dos formulários são válidos e prontos para processamento.

Exemplos utilizados: Um formulário de cadastro de usuário com diversos campos, cada um com uma regra de validação diferente. A validação é feita usando três tipos: server-side, client-side JavaScript e client-side AJAX.

Tecnologias utilizadas: Java, Eclipse, Tomcat, Struts2, FreeMarker, AJAX (dwr)




    8 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Tobias Quinteiro
Até o momento o mini-curso está excelente, só que meu exemplo empacou. Está aparecendo um erro dizendo que meu template não tem o arquivo /template/ajax/head.ftl

Template /template/ajax/head.ftl not found. - Class: freemarker.template.Configuration
File: Configuration.java
Method: getTemplate



em 21/1/2009 08:21 - Responder

 

[Comentário do autor]   Vitor Souza
Só para constar e ajudar outras pessoas que possam ter este problema, em discussão por e-mail o próprio Tobias achou a solução: precisa adicionar o arquivo struts2-dwr-plugin-2.1.6.jar nas libs (J2EE Module Dependencies) do projeto.

Abraços,
Vítor Souza


em 21/1/2009 13:52 - Responder
 

  Tobias Quinteiro
Victor e leitores,

Desculpem-me a precipitação. Mesmo adicionando o plugin struts2-dwr-plugin-2.1.6.jar continua o mesmo erro.

Estou procurando a solução. Tentei adicionar struts2-dojo-plugin-2.1.6.jar mas também não adiantou.

Estou em busca desta solução para versões mais atualizadas do struts2, se alguém souber favor postar aqui.

Grato,

Tobias Quinteiro


em 21/1/2009 14:52 - Responder
 

  Tobias Quinteiro
Encontrei apenas no WIKI do Struts2 um material falando que a tag theme="ajax" na versão nova do struts-2.1.6 foi alterada. Mas só mostra exemplos para jsp, e como o exemplo do mini-curso mostra o exemplo utilizando freemarker ainda estou procurando.

Wiki Struts2 (http://cwiki.apache.org/S2WIKI/troubleshooting-guide-migrating-from-struts-20x-to-21x.html)

Abaixo exemplo das mudanças:

Reference the new taglib in your JSP or FTL pages.
Before

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags"%>

After

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-------------------------------------------------------------------------------------------------------

Before:

"ajax"/>

After:

"true"/>

-------------------------------------------------------------------------------------------------------

Before:

"jobStatus" includeParams="get" value="/RefreshOptimizationJobStatus.action" />
"jobStatus" theme="ajax" href="%{jobStatus}" updateFreq="5000" indicator="indicator">

"indicator" src="img/indicator.gif" alt="Loading..." style="display:none"/>

After:

"jobStatus" includeParams="get" value="/RefreshOptimizationJobStatus.action" />
"jobStatus" href="%{#jobStatus}" updateFreq="5000" autoStart="true" indicator="indicator">

"indicator" src="img/indicator.gif" alt="Loading..." style="display:none"/>



em 21/1/2009 15:23 - Responder
 

[Comentário do autor]   Vitor Estevão Silva Souza
Prezados,

O Struts2 passou por diversas modificações nas últimas mudanças de versão. O AJAX foi bastante modificado, passando de DWR pra DOJO e mudando a forma como devem ser construídos os formulários.

Para a versão utilizada no mini-curso (veja aula 3) vocês devem seguir as instruções da vídeo-aula.

Quem atualizou para versões mais recentes deve consultar a documentação do framework e/ou os exemplos do struts2-showcase. Envio abaixo trechos de código que resumem o procedimento de validação (com anotações) para Struts2 versão 2.1.6:


Classe de ação:

public class MinhaAcao extends ActionSupport {
  // ...

  @Validations(
      requiredStrings = {
          @RequiredStringValidator(fieldName = "membro.nome", message = "O campo é obrigatório!"),
          @RequiredStringValidator(fieldName = "membro.email", message = "O campo é obrigatório!"),
      }
  )
  public String execute() throws Exception {
    // ...
  }
}


Página JSP:

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>

<html>
<head>
    <title>Página Teste</title>
    <sx:head />
</head>

<body>
    ...
   
    <s:form action="minhaAcao" namespace="/meuNamespace" method="post">
        <s:textfield name="nome" label="Nome" size="30" />
        <s:textfield name="email" label="E-mail" size="30" />
        <sx:submit validate="true" value="Cadastrar" />
    </s:form>
</body>
</html>


Infelizmente não tenho aqui um exemplo testado em FreeMarker. Consultem a documentação do Struts2.






em 23/10/2009 07:01 - Responder
 

  Jean Pierre Droguett Cortez
Galera .. achei a solução do problema pra quem esta usando a nova versao do Struts2

is obsolete, use a different theme:

Problem Symptom: Accessing any page that includes produces the following error:

Nov 22, 2007 1:54:51 PM freemarker.log.JDK14LoggerFactory$JDK14Logger error
SEVERE:

Expression parameters.parseContent is undefined on line 45, column 28 in template/ajax/head.ftl.
The problematic instruction:
----------
==> ${parameters.parseContent?string} [on line 45, column 26 in template/ajax/head.ftl]
----------

Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Expression parameters.parseContent is undefined on line 45,
            column 28 in template/ajax/head.ftl.
	at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
	at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:134)

Resolution is to either remove the "" or use a different theme e.g.


fonte: https://cwiki.apache.org/S2WIKI/troubleshooting-guide-migrating-from-struts-20x-to-21x.html


Abs




em 25/11/2010 16:53 - Responder
 

Fernando Franzim
Victor,
            não tive problemas até o presente momento de executar o que a video-aula apresenta, porém nesta última video aula, depois de incluir "theme="ajax"" como no video são mostradas as funcionalidades de validação via ajax que funcionam perfeitamente, mas depois disso não há uma tentativa de submeter formulário. 
           Então tentei submeter e não funciona. Encontrei uma solução, porém  não acho que deva ser a melhor que é incluir o theme="simple" na tag do<@s.submit value="Cadastrar usuário" theme="simple" />.

    


em 31/1/2011 19:20 - Responder

 

[Comentário do autor]   Vítor Estêvão Silva Souza
Olá Fernando,

Se o botão submit normal não funciona e se ao trocar ele para "simple" funciona deve ter um bug na versão do Struts2 utilizada no tutorial. Seria interessante verificar se em versões mais recentes o bug permanece ou não. De qualquer forma, é bom saber que existe uma solução para o problema. Obrigado por enviá-la no comentário!

Abraços,
Vítor Souza



em 1/2/2011 05:44 - Responder
 



Curso Online
Autor
Vítor Estêvão Silva Souza

Graduação em Ciência da Computação e Mestrado em Informática com ênfase em Engenharia de Software na Universidade Federal do Espírito Santo (UFES), onde trabalhou também como professor substituto.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
4   1
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03