Validação Struts2[Resolvido]

[b]
galerinha do Rock queria saber se tem como determinar o metodo que seria vallidado quando eu submiter um form.

exemplo

quando eu chamar o metodo salvar ele valida, mas se chamar o metodo pesquisa ele nao valida, ou melhor se chamar o metodo pesquisa ele valida mas usando outras regras de validação. (tanto o metodo salvar quando pesquisar estarao na mesma action.)

tem como ??

valewww.[/b]

Você pode utilizar anotações para os métodos… e implementar nessa anotação validações diferentes.

Exemplo simples:

@RequiredFieldValidator(message = "You must
enter a value for data.")
@RequiredStringValidator(message = "You must
enter a value for data.")
void setData(String data);

Espero ter ajudado…

parece ser bom esse annotation, mas to com dificuldade para implementa-lo,

vc teria algum exemplo ai

lembrando que a minha action vai conter a agregação do meu objeto em questao.

exemplo.

minha action vai ter um atributo do tipo User

nesse caso essas annotations vao estao na action ou no User ?

se tiver um exemplo seria legal, estou pesquisando bastante aqui mas ainda nao consegui com sucesso.

valew

Sim vão estar em User.

Exemplo:

@Validation()
public class User{
	
	private String name;
	
	public User() {}
	
  	public String getname() {return name;}
        @RequiredStringValidator(message = "Please enter a name", trim = true)
	public void setName(String lastName) {this.name = name;}
	
}

[]'s

Legal

mas antes disso to com um problema aqui agora estranho

acho que o struts nao esta encontrando as classes mapeadas !!
nem os results estao funcionando, saberia oq pode ser ?

eu estou colocando uma tag no web.xml para indicar as classes mapeadas

struts2 org.apache.struts2.dispatcher.FilterDispatcher actionPackages br.com.struts.teste

meu filter esta assim, mas acho q ele simplesmente nao esta lendo esse pacote, saberia pq ? estou usando o struts 2.1.6

parece que as anotaçoes mudaram um pouco neh, agora estao em pacotes diferentes e tals, estao em convention.
Sera que esse parametro mudou ? por causa dessa convention ?

Sua configuração do web.xml esta correta. Me passa como esta sua classe de ação. Quero ver como esta as anotações dela.

[]'s

[quote=malves_info]Sua configuração do web.xml esta correta. Me passa como esta sua classe de ação. Quero ver como esta as anotações dela.

[]'s[/quote]

consegui fazer funcionar ficou assim

@Validation
public class User implements Serializable{

private String nmUser;

private String dsUser;

private String dtUser;

public String getDtUser() {
	return dtUser;
}

public void setDtUser(String dtUser) {
	this.dtUser = dtUser;
}

public String getNmUser() {
	return nmUser;
}

@RequiredStringValidator(message = "nmUser is required", trim = true)
public void setNmUser(String nmUser) {
	this.nmUser = nmUser;
}

public String getDsUser() {
	return dsUser;
}

public void setDsUser(String dsUser) {
	this.dsUser = dsUser;
}

}

@Validation
@Results({
@Result(name = “success”, value = “/index.jsp”),
@Result(name = “input”, value = “/index.jsp”)

})
public class MinhaAction extends ActionSupport{

private User user;

@VisitorFieldValidator(message = "")
public User getUser() {
	return user;
}

public void setUser(User user) {
	this.user = user;
}


public String salvar() {
	
}

valeww
malves_info foi de grande ajuda, valew mesmo.

Blz… Qualquer problema estamos aquii!!

[]'s

[quote=malves_info]Blz… Qualquer problema estamos aquii!!

[]'s[/quote]

Ja que falou to ai de novo hehhe

seguinte

quando uso <s:form theme=“simple”>

as mensagens de errp nao aparecem mais, sabe qual seria o segredo ???

e no meu caso o form tem que ser theme=simple

valewww

No caso o theme simple não gera as mensagens, só os campos (acho que nem mesmo coloca
eles organizados numa

).

Acho que vc terá que fazer algo assim para listar os erros:

<c:forEach var="error" items="${errors.iterator}">
<fmt:message key="${error.key}"/>
</c:forEach>

Consegui da seguinte forma

<s:if test="hasFieldErrors()">
			<ul>
			<s:iterator value="fieldErrors">
				<li>				
					<s:property value="value" />
				</li>
			</s:iterator>
			</ul>
</s:if>

mais uma vez obrigado a todos.