[RESOLVIDO] Validação form Struts2

Olá!
Estou usando Struts 2.
Ao tentar fazer validação do meu formulário, pesquisei e segui os passos da apostila da Caelum FJ-21 que tem disponível para download.

1º - Coloquei a notação @Validations acima da classe SalvaProcessoAction em seguida fiz um extends para ActionSupport:

[code]@Validations(requiredStrings={
@RequiredStringValidator(fieldName=“processo.codProcesso”, message = “Digite o código do processo!”)
})
public class SalvaProcessoAction extends ActionSupport{

/*...restante da action*/

[/code]

2º - Logo depois coloquei o meu Result como name “input”:

@Action(value = "salva-processo", results = {
			@Result(name = "ok", location = "/jsp/salva-andamento.jsp"),
			@Result(name = "input", location = "/jsp/salva-processo.jsp")
	})
public String execute(){
       /*..minhas instancias com Try Catch.*/[/code]

3º - Por último coloquei o <s:fieldError fieldName:"processo.codProcesso"/> acima da Tag <form>:

[code]<body>
		<s:fielderror fieldName="processo.codProcesso"/>
		<form action="salva-processo" method="post">
 <!--...restante dos dados da JSP-->

Porém quando eu tento acessar minha jsp salva-processo.jsp, apresenta o seguinte erro:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Template /template/xhtml/fielderror.ftl not found. - Class: freemarker.template.Configuration
File: Configuration.java
Method: getTemplate
Line: 489 - freemarker/template/Configuration.java:489:-1
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:536)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:428)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)

Alguém poderia me ajudar com a configuração deste template ou me indicar onde encontrar o material para esta. Esta difícil de achar…

Obrigado!

Olá.

Amigo você colocou a tag <s:head/> dentro de seu ?
Todas as suas bibliotecas estão corretas?

Abraços.

Olá!
eu coloquei da seguinte forma:

[code]
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1” pageEncoding=“ISO-8859-1”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%@ taglib uri="/struts-tags" prefix=“s” %>
<%@ taglib uri="/struts-dojo-tags" prefix=“sx” %>

Cadastro de Processo
		<tr>
		       <td>Processo:<font color="red">*</font> </td>
			<td>
			     <input type="text" name="processo.codProcesso" maxlength="55" size="55"/>
			</td>
		</tr>[/code]

Amigo, se teu projeto ainda tá no inicio, ainda há tempo de se livrar da furada das “struts-dojo-tags”. São uma bomba relógio!

Prefira usar o Jquery-plugin que apesar de não ser oficial do framework é muito estável, existe há anos, tem muito mais componentes e usa Jquery :smiley: (quase sempre a versão mais atual) ao invés do Dojo :? .

E quanto ao erro, parece ser bug do framework. Qual versão está usando?

Eu ja desisti do Dojo rsrsrsrs… apenas esqueci de retirar a taglib.
A versão é struts2-core-2.2.3.jar

Blz.

Tenta apenas

<s:fielderror/>

E vê se rola.

[quote=elberlima]Eu ja desisti do Dojo rsrsrsrs… apenas esqueci de retirar a taglib.
A versão é 2.2.3[/quote]

coloquei só com:

<s:fielderror/>

Apresentou outro erro:

HTTP Status 500 - 

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

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: IS0-8859-1 - [unknown location]
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:536)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:428)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)


root cause 

IS0-8859-1 - [unknown location]
	org.apache.struts2.components.UIBean.end(UIBean.java:515)
	org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
	org.apache.jsp.jsp.salva_002dprocesso_jsp._jspx_meth_s_005fhead_005f0(salva_002dprocesso_jsp.java:788)
	org.apache.jsp.jsp.salva_002dprocesso_jsp._jspService(salva_002dprocesso_jsp.java:224)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)

logo depois ao atualizar a página volto para o primeiro erro.

Ih rapaz!

Amigo, dou aulas de programação Web numa faculdade. E esse mesmíssimo erro ocorreu no note de apenas 1 aluno.

Tudo estava funcionando perfeitamente com ele. Dai, de uma hora para outra, mesmo sem fechar o Netbeans nem nada, começou a dar esse erro. Nem fechando o Netbeans nem reininciando o note resolveu. Chegamos à conclusão de que era bug no Netbeans. Ele ficou de reintalar a IDE e me dizer se resolveu.

Você usa o Netbeans 7.1 p/ Windows (é o que ele usa) ?

Na verdade eu estou usando o Eclipse.

Posta a lista dos jars que está utilizando

Agora me deu medo rsrsrsrs

Amigo, você tem outras JSP com taglibs que funcionam?

Do projeto do meu aluno todas as JSP, sem exceção, pararam de funcionar.

kkkkk… deu medo foi boa! kkk…
Todas as JSP Funcionam suas Actions (insert,select,update), só não funciona esta que eu estou começando a tentar validar rs

[quote=jyoshiriro]Agora me deu medo rsrsrsrs

Amigo, você tem outras JSP com taglibs que funcionam?

Do projeto do meu aluno todas as JSP, sem exceção, pararam de funcionar.[/quote]
Isso não me parece bug de IDE, muito mais para problema com as libs que ele está utilizando.
A freemarker é uma “bomba relógio” também. E é nela que está sendo acusado o erro…

[quote=drsmachado][quote=jyoshiriro]Agora me deu medo rsrsrsrs

Amigo, você tem outras JSP com taglibs que funcionam?

Do projeto do meu aluno todas as JSP, sem exceção, pararam de funcionar.[/quote]
Isso não me parece bug de IDE, muito mais para problema com as libs que ele está utilizando.
A freemarker é uma “bomba relógio” também. E é nela que está sendo acusado o erro…[/quote]

Atualizando para a versão 2.3.3 deve resolver o problema?

Eu faria esse teste :wink:

Pessoal, tentei atualizar as libs e nada de resultado positivo =/

Não teria que configurar este template que é apresentado no erro não?

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

Cara, tem alguma coisa muito errada com teu projeto…
Aparentemente não tem nada errado.

Uma coisa que pode não ter nada a ver, as outras jsps estão sem a taglib do dojo?