ApplicationResources.properties

Bom pessoal vamos direto ao assunto.

Tenho uma aplicação que já está rodando com Struts sendo que existe um pequeno problema somente.

Quando as classes Form validam os campos funciona quase tudo perfeitamente, inclusive enviando a mensagem de erro correta para o JSP respectivo.

O único problema é a forma como essa mensagem aparece, vou dar um pequeno exemplo.

“null O login escolhido já está sendo utilizado. null”

Sendo que minha mensagem é somente o texto entre os nulls

porque esses null aparecem???

Como esta o seu validation-rules ? Pode ser que voce esteja enviando uma mensagem para a sua Jsp que ele nao esta identificando no seu aplication properties !

posta ai

vamos lá.

Cara realmente este pode ser o meu problema … até pq estou fazendo a validação local atravéz de Javascript simples mesmo (arquivo js) meu Validation.xml não contém códigos e realmente fiquei perdido agora pois não havia observado isso por achar que o esse arquivo só se referia a validação do lado cliente e como isso já estava feito não o utilizei, portanto ele está quase todo comentado. Mesmo assim estou mandando.

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

<form-validation>

<!--
     This is a minimal Validator form file with a couple of examples.
-->

    <global>

        <!-- An example global constant
        <constant>
            <constant-name>postalCode</constant-name>
            <constant-value>^\d{5}\d*$</constant-value>
        </constant>
        end example-->

    </global>

    <formset>
      <!-- 
        <form name="insertUserForm">
            <field
                property="login">
                    <arg0 key=""/>
            </field>
        </form>        
 -->
    </formset>

    <!-- An example formset for another locale -->
    <!-- 
    <formset language="fr">

        <constant>
            <constant-name>postalCode</constant-name>
            <constant-value>^[0-9a-zA-Z]*$</constant-value>
        </constant>

        
        <form name="logonForm">
            <field
                property="username"
                depends="required">
                    <arg key="logonForm.username"/>
            </field>
            <field
                property="password"
                depends="required,mask">
                    <arg key="logonForm.password"/>
                    <var>
                        <var-name>mask</var-name>
                        <var-value>^[0-9a-zA-Z]*$</var-value>
                    </var>
            </field>
        </form>

   </formset>
 -->
</form-validation>

Vou dar uma dica, pois ja aconteceu comigo, quando vc comentar algo no seu validation, no struts config, ou seja, nos arquivos .xml, verifique sempre se vc nao comentou alguma tag errada ! Isso nao esta acontecendo com vc !!

Bem, o caso é o seguinte, como vc esta passando a mensagem para a sua Jsp ? Pois se vc esta querendo que ela seja impressa, vc deve retirar, pois o JS, irá te retornar uma janela contendo o erro ! Caso queria permanecer com a mensagem na Jsp, faça a validação no validation-rules, verifique isso e depois diga se algo de errado aconteceu !

qq coisa, posta de novo

falo

Desculpa deixa eu corrigir … o meu validation.xml reamente está todo comentado devido ao fato de eu não utiliza-lo e desculpa se eu estiver errado mas eu nunca usei o validation-rules devido a somente os Form Beans validarem … pode ser esse o meu erro … o pior é que funciona tudo a única coisa errada é sempre aparecer os null…

Sim ele irá funcionar, porem o problema é que a mensagem esta aparecendo como Null, em algum lugar voce deve estar passando uma mensagem de um campo que nao existe ou esta em branco ! Como voce esta retornando a mensagem ? Voce esta usando o ActionMessages ??

Posta o codigo qq coisa !

falo

Esses nulls aí têm cara que estão vindo lá do ApplicationResources.properties.

Nas aplicações struts que trabalhei as mensagens de erros vinham dos arquivos de properties. Será que a chave procurada pra montar a mensagem não está no arquivo?

Olá

Realmente estou conciente de que o null é devido a não estar achando algum parâmetro, sendo que sinceramente fiquei perdido agora o erro é criado no ActonForm desta maneira


errors.add("login",new ActionError("error.login.equals"));

Chamo o erro no JSP atravéz da tag.

<html:errors/>

Faca uma validação simples, usando o requeried e pronto, se o campo é sempre obrigatorio !!!

qq duvida ! posta ai

a questão não é que o campo não é só requerido ele tambem depende de uma validação no banco pois é um campo de cadastro de login e que não pode haver outro igual cadastrado no banco.

Duas coisas !

1ª Para ele te retornar null na tela seguinte o campo não deve estar preenchido ! Entao se voce nao passar uma validação para ele, o valor a ser recebido é “null” mesmo.

2º Se o usuario existir no banco ele deveria retornar o parametro da sessão anterior !

Pelo visto vc nao esta digitando o “campo” login ! Me corrija se estiver errado !

falo

Desculpa mas não devo ter sido claro, o caso é que já existe uma validação para nulo, mas existe tambem essa segunda validação para chacar se o login já está cadastrado no banco.

Ambas funcionam perfeitamente sendo que suas mensagens de erro sempre aparecem entre nulls, independente de que erro seja.

Ex:

null O campo do login do usuário deve ser preenchido. null

ou

null O login inserido já está sendo utilizado no sistema, por favor insira outro login. null