vou colar uma parte que eu fiz, para cadastrar e listar empresas.
primeiro fiz o listaEmpresa.jsp
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<f:loadBundle basename="com.corejsf.messages" var="msgs"/>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<h:form>
<t:dataTable id="dataTableEmpresas" value="#{empresaBean.listaEmpresa}" var="empresa" styleClass="orders" headerClass="ordersHeader" rowClasses="evenRow,oddRow">
<%-- Coluna Nome --%>
<h:column>
<f:facet name="header">
<h:outputText id="headerTextNome" value="#{msgs.nome}"/>
</f:facet>
<h:outputText value="#{empresa.nome}"/>
</h:column>
</t:dataTable>
</h:form>
Observe que retirei a tag <f:view>, pois essa pagina sera aberta em uma tile.
Quando fui testa-la, funcionou normalmente, mas coloquei a tag <f:view> e acessei essa pagina /listaEmpresa.faces
criarEmpresa.jsp
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<h:form>
<f:loadBundle basename="com.corejsf.messages" var="msgs"/>
<t:panelGrid columns="2">
<%-- Campo Nome Empresa --%>
<t:outputLabel for="inputNomeEmpresa">
<t:outputText value="#{msgs.labelNomeEmpresa}" styleClass="textos"/>
</t:outputLabel>
<t:panelGroup>
<t:inputText id="inputNomeEmpresa" value="#{empresaBean.empresa.nome}" styleClass="campos" maxlength="100" required="true">
<f:validateLength maximum="100"/>
<f:validateLength minimum="3"/>
</t:inputText>
<t:message for="inputNomeEmpresa" styleClass="msgErro"/>
</t:panelGroup>
<%-- Botao --%>
<f:verbatim/>
<t:commandButton value="#{msgs.botaoCadastrarEmpresa}" action="#{empresaBean.criarEmpresa}" styleClass="botaoPonto"/>
</t:panelGrid>
</h:form>
Obs: testei, com a tag <f:view> e acessei localhost:8080/criarEmpresa.jsp, e funcionou perfeitamente.
menu.jsp
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<h:panelGrid columns="1">
<h:commandLink>
<h:outputText value="Listar Usuarios"/>
<f:param name="menu" value="listarUsuarios"/>
</h:commandLink>
<h:commandLink>
<h:outputText value="Criar novo usuario"/>
<f:param name="menu" value="criarUsuario"/>
</h:commandLink>
<h:commandLink>
<h:outputText value="Listar Empresas"/>
<f:param name="menu" value="listaEmpresa"/>
</h:commandLink>
<h:commandLink>
<h:outputText value="Criar nova Empresa"/>
<f:param name="menu" value="criarEmpresa"/>
</h:commandLink>
</h:panelGrid>
obs: o menu está acessando normalmente, quando clico em Criar nova Empresa, aparece a pagina no local certo.
tile-defs.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="administracao" path="/layout.jsp">
<put name="header" value="/header.jsp"/>
<put name="menu" value="/menu.jsp"/>
<put name="conteudo" value="/conteudo.jsp"/>
</definition>
</tiles-definitions>
conteudo.jsp
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:import url="${param.menu}.jsp"/>
CONTINUANDO:
Quando acesso atravez do menu “Criar Empresa”, o formulario abre. Então preecho o formulario e clico em cadastrar empresa.
ENTÃO… tudo que está aparecendo em conteudo some.
Se eu colocar algum texto no input, então cadastra na base. Como o campo input está com required=true, se eu não colocasse nada,
deveria informar o erro (assim como aparece quando acesso o criar empresa diretamente), só que o conteudo some também.
E é isso meu problema, disculpa ae se escrevi mto, mas axo que eu não estava conseguindo descrever o problema corretamente
aguardo resposta