terça-feira, 31 de julho de 2012
Abrir em nova janela com h:commandButton
<h:commandButton action="#{bean.imprimir()}" value="imprimir"
onclick="this.form.target='_blank'">
Fazer JSF passar parâmetros via GET através do ManagedBean
Útil quando é necessário passar parâmetros via GET porém, os parâmetros ainda não estão no ManagedBean.
View
<h:commandButton action="#{flpImportacaoGrupoMB.imprimir()}" value="imprimir"
onclick="this.form.target='_blank'">
Faz com que seja aberta uma nova janela do navegador. Dessa forma você pode ter um form com botões abrindo na mesma janela ou em outra.
ManagedBean
View
<h:commandButton action="#{flpImportacaoGrupoMB.imprimir()}" value="imprimir"
onclick="this.form.target='_blank'">
Faz com que seja aberta uma nova janela do navegador. Dessa forma você pode ter um form com botões abrindo na mesma janela ou em outra.
ManagedBean
public String imprimir(){
return "relFlpParametrizadoGrupo?faces-redirect=true&grupo="+grupoSelecionado
+"&campo="+campoDataSelecionado
+"&tipoProcesso="+tipoProcessoSelecionado
+"&dataI="+getDataInicioFmt()
+"&dataF="+getDataFimFmt();
}
Converte de POST para GET.
quarta-feira, 25 de julho de 2012
Passar parâmetro via get no jsf 2
Página 1
<h:link target="_blank"
outcome="/pagina2"
style="height:0px;width:0px;border-style:none;margin:0px;padding:0px;">
<h:graphicImage value="/imagens/ImagensUtilizadas/16x16/doc6.png"
/>
<f:param name="id" value="#{usuarioMB.id}"/>
</h:link>
Página 2
<ui:composition template="/templates/relatorio.xhtml">
<f:metadata>
<f:viewParam name="id"
value="#{usuarioMB.id}" />
</f:metadata>
<h:head>
<meta http-equiv="content-Type" content="text/html; charset=utf-8" />
</h:head>
<ui:define name="centro">
<h:form>
<h:outputText value="Id:" />
<h:outputText value="#{usuarioMB.usuario.id}"/>
<h:outputText value="Nome:"/>
<h:outputText value="#{usuarioMB.usuario.nome}"/>
</h:form>
</ui:define>
...
Recuperar dados do banco ao abrir a página 2:
Criar método no managed bean.
@PostConstruct
public void carregar(){
String id =
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
if(id != null &&
!id.equals("")){
dao = new
Dao<Usuario>(HibernateUtil.getSession(),
Usuario .class);
usuario = dao.get(Integer.parseInt(id) );
}
}
sexta-feira, 20 de julho de 2012
java.lang.IllegalStateException: Cannot serialize a session while connected
Problema:
java.lang.IllegalStateException: Cannot serialize a session while connected
Local do erro (JSF):
valida.validaNavio(processoMB.processo.navio_id)
Causa do erro (Tipo do argumento incorreto):
public String validaNavio(String codigo){
dao.loadByField("id", codigo);
}
java.lang.IllegalStateException: Cannot serialize a session while connected
Local do erro (JSF):
valida.validaNavio(processoMB.processo.navio_id)
Causa do erro (Tipo do argumento incorreto):
public String validaNavio(String codigo){
dao.loadByField("id", codigo);
}
Solução:
public String validaNavio(Integer codigo){
dao.loadByField("id", codigo);
}
dao.loadByField("id", codigo);
}
quinta-feira, 19 de julho de 2012
javax.faces.application.ViewExpiredException: viewId:/index.jsf - A exibição de /index.jsf não pôde ser restaurada.
javax.faces.application.ViewExpiredException: viewId:/index.jsf - A exibição de /index.jsf não pôde ser restaurada.
Para resolver, adicione as linhas abaixo no Web.xml
<context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>client</param-value> </context-param>
Assinar:
Postagens (Atom)