Erro criação ModalPanel Javascript! [RESOLVIDO]

14 respostas
F

Putz, detonei a mensagem inicial… enfim…

Eu tinha o código abaixo para abrir uma um modalPanel

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>  
<%@ taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich"%>  
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>  
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

<html>
<head>
	<title></title>
</head>
<body>
	<a href="#" onclick="javascript:Richfaces.showModalPanel('modalPanel');">Open</a>
	
	<rich:modalPanel id="modalPanel">
		<h:outputText value="TESTE TESTE TESTE!!!" />
		<a href="#" onclick="javascript:Richfaces.hideModalPanel('modalPanel');">Close</a>
	</rich:modalPanel>
</body>
</html>

E me dava o erro…

java.lang.ClassCastException: org.ajax4jsf.component.AjaxViewRoot cannot be cast to org.richfaces.component.html.HtmlModalPanel
	org.richfaces.taglib.ModalPanelTag.setProperties(ModalPanelTag.java:623)
	javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:604)
	javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1111)
	org.apache.jsp.login_jsp._jspx_meth_rich_005fmodalPanel_005f0(login_jsp.java:102)
	org.apache.jsp.login_jsp._jspService(login_jsp.java:73)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:439)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:114)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

14 Respostas

D

Boa Tarde,

Não sei se pode influenciar, mas já tentou colocar o seu link dentro de uma tag de form do JSF e a tag de link utilizando as tags JSF?

Exemplo:

<h:form>
    <h:commandLink value="Open" onClick="javascript:Richfaces.showModalPanel('modalPanel');"/>
</h:form>
F

Opa, fiz essa alteração e agora tá dando outro erro…

javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.IllegalStateException: Component org.ajax4jsf.component.AjaxViewRoot@b73d39 not expected type. Expected: javax.faces.component.UIForm. Perhaps you're missing a tag? org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) org.apache.jsp.login_jsp._jspService(login_jsp.java:92) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:439) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:114) org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100) org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

D

Posta a alteração inteira da página, deu erro em tag.

F
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

<html>
<head>
<title></title>
</head>
<body>
	<h:form>
		<h:commandLink value="Open"
			onclick="javascript:Richfaces.showModalPanel('modalPanel');" />
	</h:form>

	<rich:modalPanel id="modalPanel">
		<h:outputText value="TESTE TESTE TESTE!!!" />
		<a href="#"
			onclick="javascript:Richfaces.hideModalPanel('modalPanel');">Close</a>
	</rich:modalPanel>
</body>
</html>

incluí o trecho

<h:form>
		<h:commandLink value="Open"
			onclick="javascript:Richfaces.showModalPanel('modalPanel');" />
	</h:form>
D

Faltou a tag “f:view”

o código ficaria assim:

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>  
    <%@ taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich"%>  
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>  
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>  
      
    <html>  
    <head>  
    <title></title>  
    </head>
   <body>  
       <f:view>
       <h:form>  
           <h:commandLink value="Open" onclick="javascript:Richfaces.showModalPanel('modalPanel');" />  
       </h:form>  
     
       <rich:modalPanel id="modalPanel">  
           <h:outputText value="TESTE TESTE TESTE!!!" />  
           <h:commandLink value="Close" onclick="javascript:Richfaces.hideModalPanel('modalPanel');" />  
       </rich:modalPanel>  
     </f:view>
   </body>  
   </html>

Tente desta maneira.

F

Rapaz, tá ficando bom… parou de dar erro e abre o modal, só q abre e fecha mto rápido, nem dá pra visualizar oq tá escrito nele…

Como faço para deixá-lo aberto na tela?

D

Opa, me esqueci que dava esse probleminha com o h:commandLink,

troque o h:commandLink, pelo a4j:commandLink e vai ficar tudo certo.

F

SENSACIONAL!!!

Problema resolvido!!!

MUITO OBRIGADO DAN… xD

D

Sem problemas. ^^

Coloca um [Resolvido].

F

To tentando… :smiley:

D

É só editar o primeiro POST e Editar no Assunto.

F

Eu cheguei a fazer isso, mas animalmente apaguei a mensagem… ahuehaueuaheuhauehae

D

kkkkkkk…

Acontece.

Agora está certo.

F

Pessoal, copiei o código numa página separada e deu certo, porém quando coloca numa outra página com outros componentes o link do hide dá erro e não fecha o panel. Alguém já passou por isso?
Abraço
Fábio

Criado 10 de março de 2011
Ultima resposta 13 de nov. de 2012
Respostas 14
Participantes 3