Ir ao conteúdo
  • Cadastre-se

Erro ao compilar sistema em java


Posts recomendados

Caros amigos.

 

Estou com um pequeno problema de Criação de Menu, escrevi um código para menu vertical usando o PrimeFaces mas está dando erro.

 

O erro é causado principalmente após usar o comando: <p:menuitem />, aí não compila.

Como devo corrigir este erro ?

 

Código Fonte do Menu

<?xml version="1.0" encoding="UTF-8" ?>
<!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"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:f="http://xmlns.jcp.org/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	xmlns:ui="http://xmlns.jcp.org/jsf/facelets">

	<h:head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<title>Famrácia WEB</title>
	</h:head>
	
	<h:body>
	
	   <p:layout fullPage="true">
	       <p:layoutUnit header="Sistema WEB para Gerenciamento de Farmácia" position="north" resizable="false" closable="false" collapsible="false">
	       </p:layoutUnit>
	       
	       <p:layoutUnit header="Desenvolvido por: RCT Informática" position="south" resizable="false" closable="false" collapsible="false">
	       </p:layoutUnit>
	       
	       <p:layoutUnit header="Menu Principal" position="west" size="250" resizable="false" closable="false" collapsible="false">
	       
			    <p:panelMenu style="width:300px">
			        <p:submenu label="Arquivo">
			            <p:menuitem value="Home"  />
			            <p:menuitem value="Sair" />
			        </p:submenu>
			        <p:submenu label="Cadastro">
			            <p:menuitem value="Forncedor"/>
			            <p:menuitem value="Produto"/>
			            <p:menuitem value="Funcionário"/>			            			            
			        </p:submenu>
			        <p:submenu label="Manutenção">
			            <p:menuitem value="Entrada"/>
			            <p:menuitem value="Vendas"/>
			            <p:separator />
			            <p:menuitem value="Relatório"/>			            			            
			        </p:submenu>
			    </p:panelMenu>
    	       
	       </p:layoutUnit>
	       
	       <p:layoutUnit position="center" resizable="false" closable="false" collapsible="false">
	           <ui:insert name="conteudo"/>	       
	       </p:layoutUnit>
	   </p:layout>
	
	</h:body>
	
</html>

 

Erro gerado:

HTTP Status 500 - MenuItem must be inside a form element

type Exception report

message MenuItem must be inside a form element

description The server encountered an internal error that prevented it from fulfilling this request.

exception
javax.servlet.ServletException: MenuItem must be inside a form element
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


root cause
javax.faces.FacesException: MenuItem must be inside a form element
	org.primefaces.component.menu.BaseMenuRenderer.encodeMenuItem(BaseMenuRenderer.java:177)
	org.primefaces.component.panelmenu.PanelMenuRenderer.encodeRootSubmenu(PanelMenuRenderer.java:133)
	org.primefaces.component.panelmenu.PanelMenuRenderer.encodeMarkup(PanelMenuRenderer.java:64)
	org.primefaces.component.menu.BaseMenuRenderer.encodeEnd(BaseMenuRenderer.java:114)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
	org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:89)
	org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:72)
	org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:49)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
	com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456)
	com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


note The full stack trace of the root cause is available in the Apache Tomcat/8.0.33 logs.

--------------------------------------------------------------------------------

Apache Tomcat/8.0.33

 

Grato a todos.

 

Atenciosamente,

 

Renato

Link para o comentário
Compartilhar em outros sites

Em 06/06/2016 às 18:08, diegocmatte disse:

Acredito que a tag "menuitem" tem que estar dentro de uma tag "menu"

http://www.w3schools.com/tags/tag_menuitem.asp

 

Caro amigo Diego

 

O <p:menuitem /> está dentro do:


 

<p:layoutUnit >
       <p:panelMenu>
           <p:submenu>
                 <p:menuitem />  <!-- Mesmo assim continua o erro -->
          </p:submenu>
      </p:panelMenu>
</p:layoutUnit>

 

Observação: estou usando o xhtml e não html.

 

Como consigo corrigir ?

 

Grato.

 

REnato

Link para o comentário
Compartilhar em outros sites

Caros amigos.

 

Após algumas pesquisas e busca na Net consegui resolver o erro: HTTP Status 500 - MenuItem must be inside a form element

 

Coloquei o seguinte comando no menu: <h:form></h:form>, ficou assim.

 


 <p:layoutUnit header="Menu Principal" position="west" size="250" resizable="false" closable="false" collapsible="false">
	    <h:form> <!-- APÓS ACRESCENTAR ESTE COMANDO O MEU FUNCIONOU NORNAL -->
			    <p:panelMenu style="width:300px">
			        <p:submenu label="Arquivo">
			            <p:menuitem value="Home"  />
			            <p:menuitem value="Sair" />
			        </p:submenu>
			        <p:submenu label="Cadastro">
			            <p:menuitem value="Forncedor"/>
			            <p:menuitem value="Produto"/>
			            <p:menuitem value="Funcionário"/>			            			            
			        </p:submenu>
			        <p:submenu label="Manutenção">
			            <p:menuitem value="Entrada"/>
			            <p:menuitem value="Vendas"/>
			            <p:separator />
			            <p:menuitem value="Relatório"/>			            			            
			        </p:submenu>
			    </p:panelMenu>
	    </h:form>
 </p:layoutUnit>

 

Grato a todos.

 

Atenciosamente,

 

Renato

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...