Hebert_Coelho 21 de dez. de 2011
dentro da classe da variável “s” você tem um getCodStatus()?
diogoprosoft 21 de dez. de 2011
Hebert_Coelho 21 de dez. de 2011
diogoprosoft 21 de dez. de 2011
Blz
Bean
public class StatusBean implements Serializable {
private String codStatus ;
private String dscStatus ;
public String getCodStatus () {
return codStatus ;
}
public void setCodStatus ( String codStatus ) {
this . codStatus = codStatus ;
public String getDscStatus () {
return dscStatus ;
}
public void setDscStatus ( String dscStatus ) {
this . dscStatus = dscStatus ;
xhtml
<h:selectManyListbox id= "codStatus" value= "#{listarChamadosController.listaStatusBean}" styleClass= "ui-inputfield ui-widget ui-state-default ui-corner-all" size= "10" style= "width:250px;" >
<f:selectItem itemLabel= "" itemValue= "" />
<f:selectItems value= "#{listarChamadosController.listaStatusBean}" var= "s"
itemLabel= "#{s.dscStatus}" itemValue= "#{s.codStatus}" />
</h:selectManyListbox>
No controller meu listStatusBean usa o bean ListStatusBean
drsmachado 21 de dez. de 2011
Se fosse, por que o stackTrace diz que é String?
itemValue = "#{s.codStatus}" : Property ' codStatus ' not found on type java . lang . String
diogoprosoft 21 de dez. de 2011
Hebert_Coelho 21 de dez. de 2011
Houve alteração no código? Antes esse campo era int e depois virou string?
diogoprosoft 21 de dez. de 2011
Isso sim, o campo era Integer só que existe um tratamento na procedure do banco que esse codStatus lá é String e ele pode receber vários valores que lá no banco é tratado tipo 2,5,4,3,6
Então eu alterei ele para String e pego a lista seleciona e passo para ele, mais antes guando era Integer tbm dava esse erro
Hebert_Coelho 21 de dez. de 2011
Então pode ser algum cache/temporário no seu servidor.
Se for JBoss apague as pasta data/work/temp e inicie o servidor novamente veja se o erro persiste.
diogoprosoft 21 de dez. de 2011
Pois é limpei o tomcat e troquei de browser mesmo assim nada.
Será que eu não teria que usar o Converter?
Hebert_Coelho 21 de dez. de 2011
diogo soares:
Pois é limpei o tomcat e troquei de browser mesmo assim nada.
Será que eu não teria que usar o Converter?
Se os valores são apenas String, não precisa.
Trocar o browser não adianta pois o cache seria problema do servidor.
Que estranho viu cara. Bizarro.
raf4ever 21 de dez. de 2011
Tem uma coisa errada nesse código:
& lt ; h : selectManyListbox id = "codStatus" value = "#{listarChamadosController.listaStatusBean}" styleClass = "ui-inputfield ui-widget ui-state-default ui-corner-all" size = "10" style = "width:250px;" & gt ;
& lt ; f : selectItem itemLabel = "" itemValue = "" /& gt ;
& lt ; f : selectItems value = "#{listarChamadosController.listaStatusBean}" var = "s"
itemLabel = "#{s.dscStatus}" itemValue = "#{s.codStatus}" /& gt ;
& lt ; / h : selectManyListbox & gt ;
Vc tá usando “listarChamadosController.listaStatusBean” duas vezes,no h:selectManyListBox e no f:selectItems
EDIT:me enganei,n vi q era um manylistbox.Coloca o código que monta listaStatusBean
Hebert_Coelho 21 de dez. de 2011
raf4ever:
Tem uma coisa errada nesse código:
& lt ; h : selectManyListbox id = "codStatus" value = "#{listarChamadosController.listaStatusBean}" styleClass = "ui-inputfield ui-widget ui-state-default ui-corner-all" size = "10" style = "width:250px;" & gt ;
& lt ; f : selectItem itemLabel = "" itemValue = "" /& gt ;
& lt ; f : selectItems value = "#{listarChamadosController.listaStatusBean}" var = "s"
itemLabel = "#{s.dscStatus}" itemValue = "#{s.codStatus}" /& gt ;
& lt ; / h : selectManyListbox & gt ;
Vc tá usando “listarChamadosController.listaStatusBean” duas vezes,no h:selectManyListBox e no f:selectItems
EDIT:me enganei,n vi q era um manylistbox.Coloca o código que monta listaStatusBean
Cara, eu acho que você está certo viu. Não tem que apontar para outro cara não?
Se a outra lista for de Objetos e não Strings, aí sim terá que ter um converter.
raf4ever 21 de dez. de 2011
jakefrog:
raf4ever:
Tem uma coisa errada nesse código:
& lt ; h : selectManyListbox id = "codStatus" value = "#{listarChamadosController.listaStatusBean}" styleClass = "ui-inputfield ui-widget ui-state-default ui-corner-all" size = "10" style = "width:250px;" & gt ;
& lt ; f : selectItem itemLabel = "" itemValue = "" /& gt ;
& lt ; f : selectItems value = "#{listarChamadosController.listaStatusBean}" var = "s"
itemLabel = "#{s.dscStatus}" itemValue = "#{s.codStatus}" /& gt ;
& lt ; / h : selectManyListbox & gt ;
Vc tá usando “listarChamadosController.listaStatusBean” duas vezes,no h:selectManyListBox e no f:selectItems
EDIT:me enganei,n vi q era um manylistbox.Coloca o código que monta listaStatusBean
Cara, eu acho que você está certo viu. Não tem que apontar para outro cara não?
Se a outra lista for de Objetos e não Strings, aí sim terá que ter um converter.
Pois é,confesso que to em duvida,nunca usei lista de seleção multipla no JSF.
Mas pelo erro eu diria que está sendo montado um List<String> em vez de List<StatusBean >
Hebert_Coelho 21 de dez. de 2011
Então creio que aí está seu problema viu.
Se fosse de String para string iria na moral.
diogoprosoft 21 de dez. de 2011
Montagem
listaStatusBean = statusDAO.selectStatusListAll();
e esse statusDAO.selectStatusListAll(); retorna um List
Mais a visão de vcs está legal, agora falta achar onde que está dando esse problema.
raf4ever 21 de dez. de 2011
jakefrog:
Então creio que aí está seu problema viu.
Se fosse de String para string iria na moral.
Assim tbm n iria,pq a classe String não tem um atributo chamado ‘codStatus’
Hebert_Coelho 21 de dez. de 2011
Vc pode tentar alterar colocando o converter e editando o código itemValue="#{s.codStatus}" para itemValue="#{s}"
raf4ever 21 de dez. de 2011
Acho que matei o que é.
Muda a visibilidade da variável codStatus de private pra public.
Hebert_Coelho 21 de dez. de 2011
raf4ever:
jakefrog:
Então creio que aí está seu problema viu.
Se fosse de String para string iria na moral.
Assim tbm n iria,pq a classe String não tem um atributo chamado ‘codStatus’
Com certeza.
Eu tinha cogitado de ser String/String mas aí ja passaria o valor final ou coisa do genero.
Hebert_Coelho 21 de dez. de 2011
raf4ever:
Acho que matei o que é.
Muda a visibilidade da variável codStatus de private pra public.
Mano, atributo não deve ser public. Mas sim get/set.
Se atributo for public teu OO vai pro brejo.
raf4ever 21 de dez. de 2011
jakefrog:
raf4ever:
Acho que matei o que é.
Muda a visibilidade da variável codStatus de private pra public.
Mano, atributo não deve ser public. Mas sim get/set.
Se atributo for public teu OO vai pro brejo.
Pois n é que eu falei besteira de novo? hehehe
Diogo,posta essa tua classe controller inteira,e a classe que busca a lista do banco tbm.
drsmachado 21 de dez. de 2011
raf4ever:
jakefrog:
raf4ever:
Tem uma coisa errada nesse código:
& lt ; h : selectManyListbox id = "codStatus" value = "#{listarChamadosController.listaStatusBean}" styleClass = "ui-inputfield ui-widget ui-state-default ui-corner-all" size = "10" style = "width:250px;" & gt ;
& lt ; f : selectItem itemLabel = "" itemValue = "" /& gt ;
& lt ; f : selectItems value = "#{listarChamadosController.listaStatusBean}" var = "s"
itemLabel = "#{s.dscStatus}" itemValue = "#{s.codStatus}" /& gt ;
& lt ; / h : selectManyListbox & gt ;
Vc tá usando “listarChamadosController.listaStatusBean” duas vezes,no h:selectManyListBox e no f:selectItems
EDIT:me enganei,n vi q era um manylistbox.Coloca o código que monta listaStatusBean
Cara, eu acho que você está certo viu. Não tem que apontar para outro cara não?
Se a outra lista for de Objetos e não Strings, aí sim terá que ter um converter.
Pois é,confesso que to em duvida,nunca usei lista de seleção multipla no JSF.
Mas pelo erro eu diria que está sendo montado um List<String> em vez de List<StatusBean >
Eu concordo com o raf4.
Tem como postar o managedBean?
diogoprosoft 22 de dez. de 2011
Tá ai galera, ainda sem solução
Controller
@Controller
@Scope ( "view" )
public class ListarChamadosController implements Serializable {
private static final long serialVersionUID = 1L ;
@Autowired
private StatusDAO statusDAO ;
@Autowired
private ClasseDAO classeDAO ;
@Autowired
private EquipeDAO equipeDAO ;
@Autowired
private UsuarioDAO usuarioDAO ;
@Autowired
private ProjetoDAO projetoDAO ;
@Autowired ChamadoDAO chamadoDAO ;
private List < ChamadoBean > listarChamadosBean ;
private List < StatusBean > listaStatusBean ;
private List < ClasseBean > listarClasseBean ;
private List < EquipeBean > listarEquipeBean ;
private List < UsuarioBean > listarUsuarioBean ;
private List < UsuarioBean > listarTecnicosBean ;
private List < ProjetoBean > listarProjetoBean ;
private ClasseBean classeBean ;
private EquipeBean equipeBean ;
private UsuarioBean usuarioBean ;
private ProjetoBean projetoBean ;
private ChamadoBean chamadoBean ;
private StatusBean statusBean ;
private String dtAberturaInicio ;
private String dtAberturaFim ;
private Integer idChamado ;
private String nmCliente ;
private String descricao ;
@PostConstruct
public void init (){
classeBean = new ClasseBean ();
equipeBean = new EquipeBean ();
usuarioBean = new UsuarioBean ();
projetoBean = new ProjetoBean ();
chamadoBean = new ChamadoBean ();
statusBean = new StatusBean ();
listarChamadosBean = null ;
}
@PreDestroy
public void destroy (){
classeBean = new ClasseBean ();
equipeBean = new EquipeBean ();
usuarioBean = new UsuarioBean ();
projetoBean = new ProjetoBean ();
chamadoBean = new ChamadoBean ();
statusBean = new StatusBean ();
listaStatusBean = null ;
listarClasseBean = null ;
listarEquipeBean = null ;
listarUsuarioBean = null ;
listarTecnicosBean = null ;
listarProjetoBean = null ;
listarChamadosBean = null ;
}
public void carregaLista (){
try {
listaStatusBean = statusDAO . selectStatusListAll ();
listarClasseBean = classeDAO . selectClasseListAll ();
listarEquipeBean = equipeDAO . selectEquipeListAll ();
listarUsuarioBean = usuarioDAO . selectUsuariosGenerico ();
listarTecnicosBean = usuarioDAO . selectTecnicoAll ();
listarProjetoBean = projetoDAO . selectProjetoListAll ();
} catch ( Exception e ) {
FacesContext messages = FacesContext . getCurrentInstance ();
messages . addMessage ( null , new FacesMessage ( "Atenção" , e . getMessage ()));
e . printStackTrace ();
}
}
public void populaTabelaChamados (){
try {
chamadoBean . setDtAbertura ( dtAberturaInicio );
chamadoBean . setDtFechamento ( dtAberturaFim );
chamadoBean . setCdChamado ( idChamado );
if ( equipeBean . getCodEquipe () == 0 ){
chamadoBean . setCdEquipe ( "" );
} else {
chamadoBean . setCdEquipe ( String . valueOf ( equipeBean . getCodEquipe ()));
}
if ( classeBean . getCdClasse () == 0 ){
chamadoBean . setCdClasse ( "" );
} else {
chamadoBean . setCdClasse ( String . valueOf ( classeBean . getCdClasse ()));
}
chamadoBean . setCdUsuario ( usuarioBean . getCdUsuario ());
chamadoBean . setNmCliente ( nmCliente );
chamadoBean . setDscDescricao ( descricao );
if ( usuarioBean . getCdUsuario () == 0 ){
chamadoBean . setCdTecnico ( "" );
} else {
chamadoBean . setCdTecnico ( String . valueOf ( usuarioBean . getCdUsuario ()));
}
chamadoBean . setCdProjeto ( projetoBean . getCodProjeto ());
if ( ! listaStatusBean . isEmpty ()){
String tSelect = "" ;
for ( int i = 0 ; i < listaStatusBean . size (); i ++ ){
if ( tSelect == "" ) {
tSelect = String . valueOf ( listaStatusBean . get ( i ));
} else {
tSelect = tSelect + "," + listaStatusBean . get ( i );
}
}
chamadoBean . setCodStatus ( tSelect );
}
listarChamadosBean = chamadoDAO . selectChamadosAll ( chamadoBean );
} catch ( Exception e ) {
FacesContext messages = FacesContext . getCurrentInstance ();
messages . addMessage ( null , new FacesMessage ( "Atenção" , e . getMessage ()));
e . printStackTrace ();
}
}
gets e sets
Bean
public class StatusBean implements Serializable {
private static final long serialVersionUID = 1L ;
private String codStatus ;
private Integer codStatusSaida ;
private String dscStatusSaida ;
private String dscStatus ;
private String dscObservacao ;
private Image figura ;
private String figuraPath ;
private boolean flEnviarEmail ;
private String flDefault ;
private Integer pRetCodigo ;
private String pRetMensagem ;
private String parametro ;
private String filtro ;
gets e sets
xhtml
<h:selectManyListbox id= "codStatus" value= "#{listarChamadosController.listaStatusBean}"
styleClass= "ui-inputfield ui-widget ui-state-default ui-corner-all" size= "10" style= "width:250px;" >
<f:selectItem itemLabel= "" itemValue= "" />
<f:selectItems value= "#{listarChamadosController.listaStatusBean}" var= "s" itemLabel= "#{s.dscStatus}" itemValue= "#{s.codStatus}" />
</h:selectManyListbox>
Ta na mão galera
diogoprosoft 22 de dez. de 2011
Resolvido, era como vcs falaram mesmo no meu h:selectManyListbox eu tinha os dois values iguais assim ele dava erro, agora criei uma lista para levar os valores, ficou ótimo
<h:selectManyListbox id= "codStatus" value= "#{listarChamadosController.codStatusList}"
styleClass= "ui-inputfield ui-widget ui-state-default ui-corner-all" size= "10"
style= "width:250px;" >
<f:selectItem itemLabel= "" itemValue= "" />
<f:selectItems value= "#{listarChamadosController.listaStatusBean}" var= "s"
itemLabel= "#{s.dscStatus}" itemValue= "#{s.codStatus}" />
</h:selectManyListbox>
Obrigado a todos