Ir ao conteúdo
  • Cadastre-se
remazela

Erro ao compilar sistema em java

Recommended Posts

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

Compartilhar este post


Link para o post
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

Editado por dif
tag CODE

Compartilhar este post


Link para o post
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

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×