Struts 2 - Validação via Anotação para action com varios metodos

3 respostas
R

Olá galera,

Estou com uma problema para ajustar a validação da minha action.
Minha action tem varios metodos e estes cada um precisa ter usa propria validação. ex:

private String nome;
private String endereco;
private String bairro;

@Validations(
requiredStrings ={
@RequiredStringValidator(fieldName = "nome", message = "Campo Nome obrigatorio")
}
)
public String update(){
--
}

@Validations(
requiredStrings ={
@RequiredStringValidator(fieldName = "endereco", message = "Campo Nome obrigatorio")
}
)
public String delete(){
--
}

@Validations(
requiredStrings ={
@RequiredStringValidator(fieldName = "nome", message = "Campo Nome obrigatorio"),
@RequiredStringValidator(fieldName = "endereco", message = "Campo Nome obrigatorio"),
@RequiredStringValidator(fieldName = "bairro", message = "Campo Nome obrigatorio")
}
)
public String save(){
--
}

@SkipValidation
public List lista(){
--
}

Porem ao chamar a o metodo “minhaAction!update” ou “minhaAction!delete” ele mostra as validaçoes do save.
Será que tem alguma configuração que eu esqueci para esta validação funcionar ?

Obrigado,
Rodrigo

3 Respostas

jyoshiriro

Você mapeou as ações via XML ou via anotações ou via convenção?

Dei-nos maiores detalhes de seu mapeamento, como o conteúdo do XML de mapeamento, por exemplo.

Um forte abraço.

R

jyoshiriro:
Você mapeou as ações via XML ou via anotações ou via convenção?

Dei-nos maiores detalhes de seu mapeamento, como o conteúdo do XML de mapeamento, por exemplo.

Um forte abraço.

Estou utilizando somente anotação.

Minha unica configuração é no web.xml:

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
     	<init-param>
            <param-name>actionPackages</param-name>
            <param-value>br.com.projeto.action</param-value>
        </init-param>
    </filter> 
    
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

Minha Action:

@ParentPackage(value="struts-default")
@Results({
	@Result(name="success", value="resposta.jsp"),
	@Result(name="input", value="index.jsp") 
})
public class MinhaAcaoAction extends ActionSupport {
  private String nome;
  private String endereco;
  private String bairro;

  @Validations(
  requiredStrings ={
  @RequiredStringValidator(fieldName = "nome", message = "Campo Nome obrigatorio")
  }
  )
  public String update(){
  --
  }

  @Validations(
  requiredStrings ={
  @RequiredStringValidator(fieldName = "endereco", message = "Campo Endereco obrigatorio")
  }
  )
  public String delete(){
  --
  }

  @Validations(
  requiredStrings ={
  @RequiredStringValidator(fieldName = "nome", message = "Campo Nome obrigatorio"),
  @RequiredStringValidator(fieldName = "endereco", message = "Campo Endereco obrigatorio"),
  @RequiredStringValidator(fieldName = "bairro", message = "Campo Bairro obrigatorio")
  }
  )
  public String save(){
  --
  }

  @SkipValidation
  public List lista(){
  --
  }
}

Minha libs:
commons-fileupload-1.1.1.jar
commons-logging-1.0.4.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-codebehind-plugin-2.1.6.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar

Ao acessar qualquer metodo da minha action como “minhaAcao!update” ou “minhaAcao!delete” mostra todos as validacoes repetindo a mensagem do Nome e Enderco pois estao mapeadas nos outros metodos…

Alguem sabe como eu faço para quando eu axecutar o metodo mostrar apenas a validação deste metodo ?

Obrigado,
Rodrigo

R

algume ?

Criado 11 de maio de 2010
Ultima resposta 13 de mai. de 2010
Respostas 3
Participantes 2