Atualizar imagem a partir de URL, como fazer?

2 respostas
P

Ola Pessoal

Nao mexo com Web, entao estou bem por fora.

Preciso criar um “pre-prototipo” que vai ter basicamente:

  • Um logo no cabecalho (sem padrao ou CSS, por enquanto);
  • Um titulo;
  • 3 RadioBox;
  • 4 TextFields (Um para valores monetarios, que seria legal formatar o valor com, SE FOR SIMPLES);
  • Uma area para uma imagem que sera carregada dinamicamente de uma URL onde passo os QueryString e ele gera as imagens que quero (sempre com mesma dimensao);
  • Um botao que dispara o processo de gerar a imagem (atraves de uma URL que retorna a imagem PNG).

Esse botao tera duas funcoes:

  1. Na primeira vez ele sera com um continue, que gerara a imagem;
  2. Na segunda vez, ja com a imagem gerada, ele vai para uma outra tela de “Transacao Realizada com Sucesso” ou algo assim;

Sei que isso tera que involver AJAX, mas queria algo bem simples para esse demo, usei o Visual JSF do Netbeans, mas nao achei o suporte para AJAX, sem contar que o visual dos components nao sao tao legais.

Se alguem puder ajudar ficaria muito agradecido.

Obrigado

2 Respostas

D

Simples…basta vc utilizar o RichFaces + Ajax4JSF + JSF…

Na sua view, vc cria um campo h:graphicImage e o value dele vc aponta para uma propriedade do ManagedBean. Essa propriedade será uma String e será o caminho da sua imagem ( ex. /imagens/minhaImagem.png ).

Com o Ajax4JSF vc utiliza o a4j:support que vai disparar uma ação para uma chamada do seu ManagedBean. Este a4j:support deve estar dentro de uam tag JSF a qual vai ser tomada a ação de escolher a imagem.

Ex.:

Vamos supor que a chamada vai ser feita dependendo do usuário digitar um campo.

<h:form>
<a4j:region>
Palavra: <h:inputText value="#{beanDoido.palavra}"> <a4j:support event="onblur" action="#{beanDoido.setarURLDaImagem}" reRender="imagem"/></h:inputText>
<a4j:region>

<h:graphicImage value="#{beanDoido.urlImagem}" id="imagem"/>
</h:form>
public class BeanDoido {

 private String urlImagem;
 private String palavra;

// getters e setters

public void setarURLDaImagem(){
 if(palavra.equalsIgnoreCase("teste"){
   setUrlImagem("/imagens/ok.png");
} else {
   setUrlImagem("/imagens/erro.png");
}
 
}

}

Este é o mesmo processo para gerar a imagem e para redirecionar para outra tela, sugiro que vc coloque um identificador de ação e setar essa ação no clique.

[]'s

David

P

Muito obrigado! Vou tentar!

Abracos

Criado 27 de julho de 2008
Ultima resposta 28 de jul. de 2008
Respostas 2
Participantes 2