Ola
preciso criar um formulário com JSF 2 em que o botão fique em cima (canto superior direito) e o campo para informar texto fique abaixo
algo como:
<h:form>
<h:commandButton value ="Salvar" action="#{classeMB.adicionaCampo}" />
<p:inputText value="#{classeMB.campo}"</p:inputText>
</h:form>
O problema é que da erro
for servlet Faces Servlet threw exception: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
já na compilação
Posta seu código e mais detalhes sobre o erro. Nunca vi um erro desse tipo associado a componentes JSF
Tem algum loop nesta página? Se tiver mostre o código.
Obrigado pela atenção
Assim o formulário tem o campo de texto após o botão, ai da o erro, gostaria se com ajax ou outra forma que possa deixar o botão “Salvar” no canto superior direito da tela e o campo de texto no meio da tela
o erro: usando <h: ao inves de <p:
Ele não leva o valor do campo de texto
o código ta assim:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="/WEB-INF/templates/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui" >
<ui:define name="pagina"> <!-- Aqui a essa pagina entra o template.xhtml -->
<h:outputStylesheet library="css" name="cadastro.css" />
<h:panelGrid width="100%" styleClass="pgcadastro">
<h:form>
<h:panelGrid columns="2" width="100%" styleClass="pgcabecalho" columnClasses="col1f, col2f" >
Cadastro do local de publicação da notícia
<h:commandButton value ="Salvar" action="#{localPublicacaoMB.adicionaLp}" styleClass="salvar"/> <!-- O botao fica aqui -->
</h:panelGrid >
<br/><br/>
<p:inputText value="#{localPublicacaoMB.lp.local}" styleClass="txmdob">Local:</p:inputText> <!-- O campo de texto aqui -->
</h:form>
<h:dataTable value="#{localPublicacaoMB.lps}" var="linha" rendered="#{not empty localPublicacaoMB.lps}">
<f:facet name="header">Lista de locais</f:facet>
<h:column>
<f:facet name="header">Locais</f:facet>#{linha.local}
</h:column>
</h:dataTable>
</h:panelGrid >
</ui:define>
</ui:composition>
o MBin assim:
@ManagedBean
@SessionScoped
public class LocalPublicacaoMB {
private List<LocalPublicacao> lps = new ArrayList<LocalPublicacao>();
private LocalPublicacao lp = new LocalPublicacao();
public void adicionaLp(){
this.lps.add(this.lp);
this.lp = new LocalPublicacao();
}
// GETS E SETS
}