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>
sexta-feira, 29 de junho de 2012
@OneToOne com chave compartilhada
@Entity@DiscriminatorValue(value="S")@SequenceGenerator(name="seq_abreprocesso", sequenceName="seq_abreprocesso", allocationSize=1)public class ProcessoSc extends AbreProcesso implements Serializable{ @OneToOne(cascade = CascadeType.ALL) @PrimaryKeyJoinColumn(name="id") private Sc sc;
public Sc getSc() { return sc; }
public void setSc(Sc sc) { this.sc = sc; }
@Override public int hashCode() { return super.hashCode(); }
@Override public boolean equals(Object obj) { return super.equals(obj); } }
public Sc getSc() { return sc; }
public void setSc(Sc sc) { this.sc = sc; }
@Override public int hashCode() { return super.hashCode(); }
@Override public boolean equals(Object obj) { return super.equals(obj); } }
.public class Sc implements Serializable{ @Id @GeneratedValue(generator="fk_abreprocesso") @org.hibernate.annotations.GenericGenerator(name="fk_abreprocesso",strategy="foreign",parameters=@Parameter(name="property", value="processoSc" private Integer abreprocesso_id; @OneToOne(mappedBy="sc") private ProcessoSc processoSc;Get/Set...}
terça-feira, 26 de junho de 2012
Diferença entre datas
01.package br.com.furutani;02.import java.util.Calendar;03./**04.* Calcula a diferença em dias entre a data de hoje e o dia 10/FEV/200805.* @author Roberto Jundi06.*/07.public class Calendario {08. 09.public static void main(String[] args) {10.// Data inicial11.Calendar dataInicio = Calendar.getInstance();12.// Atribui a data de 10/FEV/200813.dataInicio.set(2008, Calendar.FEBRUARY, 10);14. 15.// Data de hoje16.Calendar dataFinal = Calendar.getInstance();17. 18.// Calcula a diferença entre hoje e da data de inicio19.long diferenca = dataFinal.getTimeInMillis() -20.dataInicio.getTimeInMillis();21. 22.// Quantidade de milissegundos em um dia23.int tempoDia = 1000 * 60 * 60 * 24;24. 25.long diasDiferenca = diferenca / tempoDia;26. 27.System.out.println("Entre a data inicial e final são " +28.diasDiferenca + " dias de diferença.");29. 30.}31. 32.}Fonte: http://www.furutani.com.br/2009/02/calculo-da-diferenca-entre-datas-em-java/
Assinar:
Postagens (Atom)