javasf@googlegroups.com
[Top] [All Lists]

Re: [javasf] Re: passagem de parâmetro com selectOneMenu

Subject: Re: [javasf] Re: passagem de parâmetro com selectOneMenu
From: Walter MourÃo
Date: Mon, 11 Apr 2011 12:06:30 -0300

E alimentar id+informação direto no selectItem achei meio estranho.

é estranho sim... isso é gambiarra de último caso. Busque a instância do banco de dentro do validator que é mais negócio.

Walter Mourão
http://waltermourao.com.br
http://arcadian.com.br
http://oriens.com.br



2011/4/11 rogerioag <roggaioso@xxxxxxxxx>
O problema é exatamente este, nem semelhante a isso consegui fazer.
Tentei gravar como String em um inputHidden mas não consegui.

Tentei usar

<t:jsValueChangeListener for="">        expressionValue="$destElem.value =
$srcElem.options[$srcElem.selectedIndex].text"/>

mas grava o nome da localidade exibida no selectItem, não tem como via
_javascript_ captar o valor da propriedade que quero.

Tentei usar f:param , f:attribute , tudo sem sucesso.

E alimentar id+informação direto no selectItem achei meio estranho.


On 11 abr, 09:19, Walter Mourão <walter.mou...@xxxxxxxxx> wrote:
> Sugestão simplista: ao invés de retornar o id, retorne um string que tenha o
> id+informação adicional, tipo assim: "99#info" e destrinche no validator ou
> outro lugar.
>
> Walter Mourãohttp://waltermourao.com.brhttp://arcadian.com.brhttp://oriens.com.br
>
> 2011/4/11 rogerioag <roggai...@xxxxxxxxx>
>
> > Não usei o value em selectOneMenu, e sim no selectItens (ver abaixo).
> > Tanto que nessa tela tenho outros 3 selects sem problema.
>
> > O diferente deste select é que quero passar além do ID do item
> > corrente que for selecionado (uma instância de um objeto do tipo
> > Localidade) e ao mesmo tempo uma outra característica desta instância,
> > no caso o ID do Município que é atributo desta localidade
> > (Localidade.getMunicipio.getId( ). Quando eu seleciono um item, o
> > valueChangeListener dispara o método
> > "localidadeMB.selecionarLocalidade" que alimenta a propriedade
> > "localidade" no managedBean, mas usando
>
> > <f:param id="codMunicipioLocalidade"
> > value="#{localidadeMB.localidade.municipio.municipioId}"/>
>
> > me retorna null, se tento usar isso no validador, assim:
>
> > String codMun = JSFHelper.getRequestParameter("formInserir" +
> > NamingContainer.SEPARATOR_CHAR + "codLocalidadeRelacionada");
>
> > On 8 abr, 18:17, Filipe Aguilar Santana <aguilar.l...@xxxxxxxxx>
> > wrote:
> > > Cara não tem que ter um value aqui:
>
> > > <h:selectOneMenu id="localidade"
> > >                 valueChangeListener="#{
> > localidadeMB.selecionarLocalidade}"
> > >                 validator="localidadeValidator"    -> value="#{???}
> > > <-         >
>
> > > ....
> > > </h:selectOneMenu>
>
> > > T+,
> > > Filipe.
>
> > > Em 8 de abril de 2011 17:59, rogerioag <roggai...@xxxxxxxxx> escreveu:
>
> > > > Como faço para passar um parâmetro para um validador através de um
> > > > selectOneMenu?
>
> > > > No selectOneMenu abaixo, gostaria de passar como parâmetro uma
> > > > propriedade do item que está selecionado naquele instante, para poder
> > > > validá-lo. O problema é que no método validate() da classe
> > > > LocalidadeValidator não consigo obter este valor, só chega null.
>
> > > > <h:selectOneMenu id="localidade"
>
> > valueChangeListener="#{localidadeMB.selecionarLocalidade}"
> > > >                 validator="localidadeValidator">
> > > >        <f:selectItem itemValue="0" itemLabel="---"/>
> > > >        <f:selectItems value="#{localidadeMB.localidades}"/>
> > > >        <f:param id="codMunicipioLocalidade"
> > > > value="#{localidadeMB.localidade.municipio.municipioId}"/>
> > > > </h:selectOneMenu>
>
> > > > * LocalidadeValidator
>
> > > > public void validate(FacesContext context, UIComponent ui, Object
> > > > value) throws ValidatorException {
> > > >        String x1 = JSFHelper.getRequestParameter("form" +
> > > > NamingContainer.SEPARATOR_CHAR + "codMunicipioLocalidade");
> > > >        if(codMunicipio != 999){
> > > >                FacesMessage msg = new FacesMessage(null, "mensagem de
> > > > erro");
> > > >                throw new ValidatorException(msg);
> > > >        }
> > > > }
>
> > > > --
> > > > Você recebeu esta mensagem por que é membro do  Javasf
> > > >http://groups.google.com/group/javasf
>
> > > > Conheça também o Java Brazil:
> >http://groups.google.com/group/thejavabrazil
>
> > --
> > Você recebeu esta mensagem por que é membro do  Javasf
> >http://groups.google.com/group/javasf
>
> > Conheça também o Java Brazil:http://groups.google.com/group/thejavabrazil

--
Você recebeu esta mensagem por que é membro do  Javasf
http://groups.google.com/group/javasf

Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil

--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil
<Prev in Thread] Current Thread [Next in Thread>