Olá, preciso passar um parâmetro para o método que gera o combo pra mim. Porém não sei como fazer.
<h:selectOneRadio value="#{mb.value}">
<f:selectItems value="utils.listCombo">
<f:param value="1" name="parametro"/>
</f:selectItems>
</h:selectOneRadio>No entanto o quando vou tentar recuperar este valor no método ele não consegue! Recebo um NotNullException.
É pq eu criei um método que via Reflection eu apenas passo o nome da classe para ele consultar no banco e me retornar o Map para o combobox (ou rádio). Então eu precisaria passar o nome da classe para este método para obter esta lista.
O que eu não gostaria de fazer é ter que criar um método para cada Controller, pois são muitos e preciso de agilidade no desenvolvimento.
Como faria isso com esse rendered ou com ajax4jsf?
Anderson_Schmidt
Olá,
Rendered é um atributo de quase todos os componentes faces. Usado com expressões ou valores booleanos, permite a exibição ou não do componente.
ajax4jsf é um framework que injeta recursos do AJAX em componentes JSF. O uso é muito simples.
Não sei se usar um deles ou os dois vai resolver seu problema, quem sabe se vc tem várias situações dessas sim, vai ajudar no mínimo. Agora, pelo que entendi, você quer um <h:selectOneRadio> que seja montado de acordo com os dados de qualquer tabela ou o clique em uma das posições é que aciona essa consulta?
Flws!
ACDias
Agora, pelo que entendi, você quer um <h:selectOneRadio> que seja montado de acordo com os dados de qualquer tabela ou o clique em uma das posições é que aciona essa consulta?
Eu quero que o selectOneRadio seja montado de acordo com os dados de qualquer tabela no momento que ele está sendo renderizado, ou seja, quando a página for exibida.
Anderson_Schmidt
Hum…
Então essa forma de uso com o não irá funcionar.
Ele é utilizado apenas quando ações pós renderização (clique sobre uma opção do radio) são efetuadas.
Só com esse componente e um método que use reflection não irá atender seu problema. Você terá de ter algum “agente” que lhe diga qual a tabela será carregada e então renderizar o seu selectOneRadio novamente.