drsmachado 27 de dez. de 2012
É difícil para você usar a tag [code]?
allisonwlad 27 de dez. de 2012
é a primeira vez que posto aki no GUJ ainda estou me familiarizando!!! hehehe
Arthur_F_Ferreira 27 de dez. de 2012
Veja as seguintes linhas:
< f : selectItems value = "#{servidor.listaServidores}" var = "serv" itemLabel = "#{serv.nome}" itemValue = "#{serv.id_servidor}" />
< f : selectItems value = "#{metodo.listarMetodos}" var = "met" itemLabel = "#{met.ds_metodo}" itemValue = "#{met.id_metodo}" />
Cadê os atributos listaServidores e listarMetodos? Sua controller tem que ter essas duas listas e seus respectivos getters (não precisa dos setters).
allisonwlad 27 de dez. de 2012
Tenho que ter as listas no meu Managed bean mesmo eles estando em outros Managed Beans?????
package br.com.brb.trx.controller ;
import java.util.List ;
import javax.faces.bean.ManagedBean ;
import javax.faces.model.DataModel ;
import javax.faces.model.ListDataModel ;
import br.com.brb.trx.bean.MetodoBean ;
import br.com.brb.trx.dao.MetodoDao ;
@ManagedBean ( name = "metodo" )
public class MetodoController {
private long id_metodo ;
private String ds_metodo ;
private DataModel < MetodoBean > listaMetodos ;
public DataModel < MetodoBean > getListarMetodos (){
List < MetodoBean > lista = new MetodoDao (). listar ();
listaMetodos = new ListDataModel < MetodoBean > ( lista );
return listaMetodos ;
}
public long getId_metodo () {
return id_metodo ;
}
public void setId_metodo ( long id_metodo ) {
this . id_metodo = id_metodo ;
}
public String getDs_metodo () {
return ds_metodo ;
}
public void setDs_metodo ( String ds_metodo ) {
this . ds_metodo = ds_metodo ;
}
public String inserir (){
MetodoDao dao = new MetodoDao ();
MetodoBean metodo = new MetodoBean ();
metodo . setDs_metodo ( getDs_metodo ());
dao . inserirMetodo ( metodo );
return "inserir" ;
}
public String remover (){
MetodoBean metodo = ( MetodoBean )( listaMetodos . getRowData ());
MetodoDao dao = new MetodoDao ();
dao . removerMetodo ( metodo );
return "excluir" ;
}
}
[ code ]
package br.com.brb.trx.controller ;
import java.util.List ;
import javax.faces.bean.ManagedBean ;
import javax.faces.model.DataModel ;
import javax.faces.model.ListDataModel ;
import br.com.brb.trx.bean.ServidorBean ;
import br.com.brb.trx.dao.ServidorDao ;
@ManagedBean ( name = "servidor" )
public class ServidorController {
private long id_servidor ;
private String nome ;
private DataModel < ServidorBean > listaServidores ;
public DataModel < ServidorBean > getListaServidores (){
List < ServidorBean > lista = new ServidorDao (). listar ();
listaServidores = new ListDataModel < ServidorBean > ( lista );
return listaServidores ;
}
public long getId_servidor () {
return id_servidor ;
}
public void setId_servidor ( long id_servidor ) {
this . id_servidor = id_servidor ;
}
public String getNome () {
return nome ;
}
public void setNome ( String nome ) {
this . nome = nome ;
}
public String gravarServidor (){
ServidorBean servidorBean = new ServidorBean ();
ServidorDao servidorDao = new ServidorDao ();
servidorBean . setNome ( getNome ());
servidorDao . gravarServidor ( servidorBean );
return "inserir" ;
}
public String excluirServidor (){
ServidorBean servidorBean = ( ServidorBean )( listaServidores . getRowData ());
ServidorDao servidorDao = new ServidorDao ();
servidorDao . deletarServidor ( servidorBean );
return "excluir" ;
}
public ServidorBean recuperarServidorPorId (){
ServidorBean servidorBean = new ServidorDao (). recuperarServidor ( getId_servidor ());
return servidorBean ;
}
}
[/code]
Arthur_F_Ferreira 27 de dez. de 2012
Hm. Desculpe. Falha minha. Eu li seu código e supus que todos liam de RegraController. Dessa forma que você fez está correto. Tem como colocar o stack trace completo?
allisonwlad 27 de dez. de 2012
An Error Occurred :
/ cadastra_regra . xhtml @20 , 81 value = "#{regra.servidorBean.id_servidor}" : Target Unreachable , ' servidorBean ' returned null
+- Stack Trace
javax . el . PropertyNotFoundException : / cadastra_regra . xhtml @20 , 81 value = "#{regra.servidorBean.id_servidor}" : Target Unreachable , ' servidorBean ' returned null
at com . sun . faces . facelets . el . TagValueExpression . getType ( TagValueExpression . java : 100 )
at org . richfaces . component . util . InputUtils . findConverter ( InputUtils . java : 123 )
at org . richfaces . component . util . InputUtils$1 . getConverterByProperty ( InputUtils . java : 56 )
at org . richfaces . component . util . InputUtils . getConvertedValue ( InputUtils . java : 148 )
at org . richfaces . component . util . InputUtils . getConvertedValue ( InputUtils . java : 137 )
at org . richfaces . renderkit . InputRendererBase . getConvertedValue ( InputRendererBase . java : 50 )
at javax . faces . component . UIInput . getConvertedValue ( UIInput . java : 1030 )
at javax . faces . component . UIInput . validate ( UIInput . java : 960 )
at javax . faces . component . UIInput . executeValidate ( UIInput . java : 1233 )
at javax . faces . component . UIInput . processValidators ( UIInput . java : 698 )
at javax . faces . component . UIComponentBase . processValidators ( UIComponentBase . java : 1214 )
at javax . faces . component . UIComponentBase . processValidators ( UIComponentBase . java : 1214 )
at javax . faces . component . UIForm . processValidators ( UIForm . java : 253 )
at javax . faces . component . UIComponentBase . processValidators ( UIComponentBase . java : 1214 )
at javax . faces . component . UIComponentBase . processValidators ( UIComponentBase . java : 1214 )
at javax . faces . component . UIViewRoot . processValidators ( UIViewRoot . java : 1172 )
at com . sun . faces . lifecycle . ProcessValidationsPhase . execute ( ProcessValidationsPhase . java : 76 )
at com . sun . faces . lifecycle . Phase . doPhase ( Phase . java : 101 )
at com . sun . faces . lifecycle . LifecycleImpl . execute ( LifecycleImpl . java : 118 )
at javax . faces . webapp . FacesServlet . service ( FacesServlet . java : 593 )
at org . apache . catalina . core . ApplicationFilterChain . internalDoFilter ( ApplicationFilterChain . java : 305 )
at org . apache . catalina . core . ApplicationFilterChain . doFilter ( ApplicationFilterChain . java : 210 )
at org . apache . catalina . core . StandardWrapperValve . invoke ( StandardWrapperValve . java : 225 )
at org . apache . catalina . core . StandardContextValve . invoke ( StandardContextValve . java : 123 )
at org . apache . catalina . authenticator . AuthenticatorBase . invoke ( AuthenticatorBase . java : 472 )
at org . apache . catalina . core . StandardHostValve . invoke ( StandardHostValve . java : 168 )
at org . apache . catalina . valves . ErrorReportValve . invoke ( ErrorReportValve . java : 98 )
at org . apache . catalina . valves . AccessLogValve . invoke ( AccessLogValve . java : 927 )
at org . apache . catalina . core . StandardEngineValve . invoke ( StandardEngineValve . java : 118 )
at org . apache . catalina . connector . CoyoteAdapter . service ( CoyoteAdapter . java : 407 )
at org . apache . coyote . http11 . AbstractHttp11Processor . process ( AbstractHttp11Processor . java : 1001 )
at org . apache . coyote . AbstractProtocol$AbstractConnectionHandler . process ( AbstractProtocol . java : 585 )
at org . apache . tomcat . util . net . JIoEndpoint$SocketProcessor . run ( JIoEndpoint . java : 312 )
at java . util . concurrent . ThreadPoolExecutor$Worker . runTask ( ThreadPoolExecutor . java : 886 )
at java . util . concurrent . ThreadPoolExecutor$Worker . run ( ThreadPoolExecutor . java : 908 )
at java . lang . Thread . run ( Thread . java : 662 )
+- Component Tree
< UIViewRoot id = "j_id1" inView = "true" locale = "pt_BR" renderKitId = "HTML_BASIC" rendered = "true" transient = "false" viewId = "/cadastra_regra.xhtml" >
javax_faces_location_HEAD
< ComponentResourceContainer id = "javax_faces_location_HEAD" inView = "true" rendered = "true" transient = "false" >
< UIOutput id = "__rf_skinning_resource" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id21" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id22" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id23" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id24" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id25" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id26" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id27" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id28" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id29" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id30" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id31" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id32" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id33" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id34" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id35" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id36" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id37" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id38" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "j_id39" inView = "true" rendered = "true" transient = "false" />
< UIOutput id = "_org_richfaces_queue" inView = "true" rendered = "true" transient = "false" />
</ ComponentResourceContainer >
<? xml version = "1.0" encoding = "ISO-8859-1" ?> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns = "http://www.w3.org/1999/xhtml" >
< UIOutput id = "j_idt4" inView = "true" rendered = "true" transient = "false" >
< link href = "#{facesContext.externalContext.requestContextPath}/css/default.css" rel = "stylesheet" type = "text/css" /> < title > # { var . title } </ title >
</ UIOutput >
< UIOutput id = "j_idt6" inView = "true" rendered = "true" transient = "false" >
<!-- Cabeçalho -->
< HtmlPanelGroup id = "j_idt8" inView = "true" rendered = "true" transient = "false" >
< img border = "0" src = "images/logo2.jpg" width = "90" height = "40" /> < h1 > # { var . title } </ h1 > < table width = "100%" > < tr >< td style = "background-color: #200070" height = "5" /></ tr > </ table >
</ HtmlPanelGroup >
<!-- Menu de navegação -->
< HtmlForm enctype = "application/x-www-form-urlencoded" id = "j_idt11" inView = "true" prependId = "true" rendered = "true" submitted = "false" transient = "false" >
< UIQueue id = "j_idt12" ignoreDupResponses = "true" inView = "true" rendered = "true" requestDelay = "-[telefone removido]" transient = "false" />
< HtmlPanelGrid border = "-[telefone removido]" columns = "-[telefone removido]" id = "j_idt13" inView = "true" rendered = "true" styleClass = "floatLeft" transient = "false" >
< UIAccordion activeItem = "j_idt15" cycledSwitching = "false" id = "j_idt14" immediate = "false" inView = "true" limitRender = "false" localValueSet = "false" rendered = "true" required = "false" style = "width: 256px;" styleClass = "floatLeft" switchType = "ajax" transient = "false" valid = "true" >
< UIAccordionItem disabled = "false" header = "Administração" id = "j_idt15" inView = "true" name = "j_idt15" rendered = "true" switchType = "ajax" transient = "false" >
< HtmlOutputLink disabled = "false" id = "j_idt16" inView = "true" rendered = "true" transient = "false" value = "cadastra_servidor.xhtml" >
#{var.servidor}
</ HtmlOutputLink >
< br />
< HtmlOutputLink disabled = "false" id = "j_idt19" inView = "true" rendered = "true" transient = "false" value = "cadastra_metodo.xhtml" >
#{var.metodo}
</ HtmlOutputLink >
< br />
< HtmlOutputLink disabled = "false" id = "j_idt22" inView = "true" rendered = "true" transient = "false" value = "cadastra_regra.xhtml" >
#{var.regra}
</ HtmlOutputLink >
</ UIAccordionItem >
< UIAccordionItem disabled = "false" header = "Monitoração" id = "j_idt24" inView = "true" name = "j_idt24" rendered = "true" switchType = "ajax" transient = "false" >
< HtmlOutputLink disabled = "false" id = "j_idt25" inView = "true" rendered = "true" transient = "false" value = "lista_arquivos.xhtml" >
#{var.listaArquivos}
</ HtmlOutputLink >
</ UIAccordionItem >
</ UIAccordion >
</ HtmlPanelGrid >
</ HtmlForm >
<!-- Conteudo das paginas -->
< h1 > # { var . regra } </ h1 >
< HtmlForm enctype = "application/x-www-form-urlencoded" id = "j_idt29" inView = "true" prependId = "true" rendered = "true" submitted = "true" transient = "false" >
< UIPanel id = "j_idt30" inView = "true" rendered = "true" transient = "false" >
< HtmlPanelGrid border = "-[telefone removido]" columns = "2" id = "j_idt31" inView = "true" rendered = "true" transient = "false" >
< HtmlOutputLabel escape = "true" for = "list-servidores" id = "j_idt32" inView = "true" rendered = "true" transient = "false" value = "Servidores " />
< UISelect disabled = "false" enableManualInput = "false" id = "list-servidores" immediate = "false" inView = "true" localValueSet = "false" rendered = "true" required = "false" selectFirst = "true" showButton = "true" submittedValue = "1" transient = "false" valid = "true" >
< UISelectItems id = "j_idt33" inView = "true" rendered = "true" transient = "false" value = "javax.faces.model.ListDataModel@692dec" />
</ UISelect >
< HtmlOutputLabel escape = "true" for = "list-metodos" id = "j_idt34" inView = "true" rendered = "true" transient = "false" value = "Metodos" />
< UISelect disabled = "false" enableManualInput = "false" id = "list-metodos" immediate = "false" inView = "true" localValueSet = "false" rendered = "true" required = "false" selectFirst = "true" showButton = "true" submittedValue = "1" transient = "false" valid = "true" >
< UISelectItems id = "j_idt35" inView = "true" rendered = "true" transient = "false" value = "javax.faces.model.ListDataModel@cf590" />
</ UISelect >
< HtmlCommandButton action = "#{regra.inserir}" actionExpression = "#{regra.inserir}" disabled = "false" id = "j_idt36" immediate = "false" inView = "true" readonly = "false" rendered = "true" transient = "false" type = "submit" value = "Cadastrar" />
</ HtmlPanelGrid >
</ UIPanel >
</ HtmlForm >
<!-- Rodape -->
< HtmlPanelGrid border = "-[telefone removido]" columns = "-[telefone removido]" id = "j_idt38" inView = "true" rendered = "true" styleClass = "rodape" transient = "false" width = "99%" >
< hr />
< HtmlOutputText escape = "true" id = "j_idt40" inView = "true" rendered = "true" styleClass = "textoRodape" transient = "false" value = "PSP/NUSUP/GEROP/SUPRO" />
</ HtmlPanelGrid >
</ UIOutput >
</ html >
</ UIViewRoot >
+- Scoped Variables
Request Parameters Name Value
j_idt29 j_idt29
j_idt29 : j_idt36 Cadastrar
j_idt29 : list - metodos 1
j_idt29 : list - metodosInput FTP
j_idt29 : list - servidores 1
j_idt29 : list - servidoresInput BRB03
View Attributes Name Value
regra br . com . brb . trx . controller . RegraController @ ce0197
Request Attributes Name Value
metodo br . com . brb . trx . controller . MetodoController @ ca62f7
servidor br . com . brb . trx . controller . ServidorController @1277ff a
Flash Attributes Name Value
None
Session Attributes Name Value
None
Application Attributes Name Value
csfcff com . sun . faces . context . flash . ELFlash @5 da364
Arthur_F_Ferreira 27 de dez. de 2012
Ah blz. Ele tá dizendo que o atributo servidorBean na sua RegraController está null, ou seja, não foi inicializado. Inicialize o atributo:
private ServidorBean servidorBean = new ServidorBean();
Ou crie um construtor padrão da controller inicializando-o.
allisonwlad 27 de dez. de 2012
Arthur… Muito obrigado, nem dormi direito essa noite por conta disso… um abraço!