Problema com render response

16 views
Skip to first unread message

Felipe Ribas Forbeck

unread,
May 21, 2009, 3:30:47 PM5/21/09
to javasf: JavaServer Faces International Group
olá pessoal... estou tentando fazer com que a minha página inicial,
antes de ser disponibilizada para o usuário, ela apresente um panel
popup para que seja escolhido um item. Dps da escolha do item, a
pagina inicial ficará pronta para navegar;

mas tenho a seguinte exception:

ERROR [D2DFaceletViewHandler] Problem in renderResponse:
javax.el.ELException: /pitagoras/private/base/popup/
selecionaEmpresa.xhtml @35,72 value="#{empresa.itens}": Error reading
'itens' on type br.inf.teorema.webclient.controller.EmpresaBean
javax.faces.FacesException: javax.el.ELException: /pitagoras/private/
base/popup/selecionaEmpresa.xhtml @35,72 value="#{empresa.itens}":
Error reading 'itens' on type
br.inf.teorema.webclient.controller.EmpresaBean

segue o Bean e o método de acesso aos itens...
EmpresaBean{
...
public SelectItem[] getItens(){
criarListItens();
return itens;
}

private void criarListItens(){
String nomeUsuario = ControleAcessoBean.getInstance().getUsuario
(FacesUtils.getSessionId()).getUsuarioNome();
List<Empresa> empresas = findAllEmpresa(nomeUsuario);
this.itens = new SelectItem[empresas.size()];
for (int i = 0; i < empresas.size(); i++){
this.itens[i] = new SelectItem(empresas.get(i), empresas.get
(i).getEmpresaNome());
}
}
...
}

body da popup selecionaEmpresa.xhtml:

<ice:selectOneListbox
id="SlctCompTyp"
value="#{usuario.selectedItem}" required="true"
valueChangeListener="#{usuario.itemChanged}">
<f:selectItems id="SlctcompTypeItms" value="#{empresa.itens}" /
>
</ice:selectOneListbox>

no head da página inicial é incluída a popup...
paginaInicial.xhtml ...
<head>
<ui:include id="selecionaEmp"
action="#{popup.openPopup}"
rendered="#{popup.visible}"
src="./popup/selecionaEmpresa.xhtml">
</head>

quando eu coloco o include no head a exception é lançada.. e qndo eu
coloco o msm include no body, a página é renderizada normalmente,
porém não exibe a popup selecionaEmpresa.xhtml.

Alguém tem idéia do que pode estar acontecendo? é problema de
lifecycle? por tentar montar a popup antes de abrir a página inicial
(que seria a raíz da àrvore). Não sei, to supondo! vlw aih! []'s

Bruno maomeH

unread,
May 21, 2009, 4:03:45 PM5/21/09
to jav...@googlegroups.com
o código da popup deve ficar no body da página.. head é para dados de cabeçalho, titulo da página, imports de css/javascript... essas coisas..

não sei quanto ao icefaces.. mas no richfaces, o componente tem um atributo chamado showWhenRendered.. que quando setado como true, ele abre o popup quando renderizado..
olha se no icefaces tem algo parecido..

outra ideia, é fazer essa verificação (se vai abrir ou não) em um javascript.. em caso afirmativo, vc faz a chamada do popup para abri-lo

2009/5/21 Felipe Ribas Forbeck <ffor...@gmail.com>



--
   C. SOARES - Bruno,
   C. COMPUTAÇÃO - Unifor,
   C. MAGALHÃES - Desenvolvedor.

Felipe Ribas Forbeck

unread,
May 21, 2009, 4:24:37 PM5/21/09
to jav...@googlegroups.com
Cara, tem sim. é o atributo rendered. Tem a msm funcionalidade do showWhenRendered.
vou colocar no body o include e fazer uns testes, dps retorno!

Qnto ao javascript, queria uma dica...
é considerado boa prática de programação trabalhar com js puro em um projeto com ICEfaces, por exemplo, onde o js ta "escondido". tem problema?
tipo, sou iniciante em programação web, ainda mais com ICEfaces.
Vi que o icef trabalha internamente com scriptalicious...
se eu usar o js puro no projeto, não seria como se não estivesse utilizando os recursos do ice?
[]'s

Bruno maomeH

unread,
May 21, 2009, 4:47:04 PM5/21/09
to jav...@googlegroups.com
o icefaces usa javascript, para as especificações dos componentes dele.. para a sua regra de negocio, não tem nenhum problema criar javascripts..
na verdade, não vejo um sistema sem nenhum javascript próprio..

Felipe Ribas Forbeck

unread,
May 22, 2009, 12:43:17 PM5/22/09
to javasf: JavaServer Faces International Group
Hunm, entendi!
Tá. Qnto a problema...
eu fiz as modificações e não funcionou, então retirei o conteúdo da
popup e coloquei num div na página inicial msm!
Tranquilo, ele funcionou. Mas com um detalhe: só exibe a lista de
empresas na primeira vez que eu subo o servidor.
Se eu fizer qlqr alteração em qlqr página e fizer um hot-deploy, a
exception é apresentada:

javax.faces.FacesException: Problem in renderResponse:
javax.el.ELException: /pitagoras/private/base/home.xhtml @57,69
value="#{empresa.itemList}": Error reading 'itemList' on type
br.inf.teorema.webclient.controller.EmpresaBean
com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse
(D2DFaceletViewHandler.java:296)
com.icesoft.faces.application.D2DViewHandler.renderView
(D2DViewHandler.java:153)
...

Outra coisa, só funcionou dps que eu fiz o EmpresaBean implementar
Serializable.
Tem idéia do que pode ser isso?
[]'s


On 21 maio, 17:47, Bruno maomeH <bsoares.i...@gmail.com> wrote:
> o icefaces usa javascript, para as especificações dos componentes dele..
> para a sua regra de negocio, não tem nenhum problema criar javascripts..
> na verdade, não vejo um sistema sem nenhum javascript próprio..
>
> 2009/5/21 Felipe Ribas Forbeck <fforb...@gmail.com>
>
>
>
> > Cara, tem sim. é o atributo rendered. Tem a msm funcionalidade do
> > showWhenRendered.
> > vou colocar no body o include e fazer uns testes, dps retorno!
>
> > Qnto ao javascript, queria uma dica...
> > é considerado boa prática de programação trabalhar com js puro em um
> > projeto com ICEfaces, por exemplo, onde o js ta "escondido". tem problema?
> > tipo, sou iniciante em programação web, ainda mais com ICEfaces.
> > Vi que o icef trabalha internamente com scriptalicious...
> > se eu usar o js puro no projeto, não seria como se não estivesse utilizando
> > os recursos do ice?
> > []'s
>
> > 2009/5/21 Bruno maomeH <bsoares.i...@gmail.com>
>
> >> o código da popup deve ficar no body da página.. head é para dados de
> >> cabeçalho, titulo da página, imports de css/javascript... essas coisas..
>
> >> não sei quanto ao icefaces.. mas no richfaces, o componente tem um
> >> atributo chamado showWhenRendered.. que quando setado como true, ele abre o
> >> popup quando renderizado..
> >> olha se no icefaces tem algo parecido..
>
> >> outra ideia, é fazer essa verificação (se vai abrir ou não) em um
> >> javascript.. em caso afirmativo, vc faz a chamada do popup para abri-lo
>
> >> 2009/5/21 Felipe Ribas Forbeck <fforb...@gmail.com>
Reply all
Reply to author
Forward
0 new messages