[RESOLVIDO]Como atualizar captcha com richfaces?

1 resposta
arthurminarini

pessoa tenho um login usando SimpleCaptcha-1.1.1 esta funcionando perfeitamente mas estou querendo implantar um botão para dar uma atualizada no captcha afim de trocar o escrito da imagem.

vai ser util também para quando o usuario fechar sua sessão no sistema ele é redirecionado para o login mas neste momneto o captcha esta com valor velho(o que ele usou pra logar) dai tenho que atualizar o captcha para ele fazer outro veja como esta

lib

SimpleCaptcha-1.1.1

web.xml

<servlet>
        <servlet-name>StickyCaptcha</servlet-name>
        <servlet-class>nl.captcha.servlet.SimpleCaptchaServlet</servlet-class>        
    </servlet>

    <servlet-mapping>
        <servlet-name>StickyCaptcha</servlet-name>
        <url-pattern>/servletCaptcha</url-pattern>
    </servlet-mapping>
</servlet>

jsp

<td align="center" valign="middle" style="padding-top: 20px; padding-bottom: 20px">
                                    <a4j:commandLink id="actionAlterCaptcha" action="#{login.alterarCaptcha}" immediate="true" style="text-decoration: none;color:#000000" reRender="imgCaptcha">
                                        <h:graphicImage value="/servletCaptcha" width="120" height="70" id="imgCaptcha"/>
                                    </a4j:commandLink>
                                    <rich:toolTip for="actionAlterCaptcha" value="Trocar imagem" />
                                </td>

java

public void alterarCaptcha(){
        SystemSession.trocarCaptcha();
    }

outra classe

public static void trocarCaptcha(){
         FacesContext context = FacesContext.getCurrentInstance();
         
         HttpSession s = (HttpSession) context.getExternalContext().getSession(false);
         s.removeAttribute(Captcha.NAME);

         Application application = context.getApplication();
         ViewHandler viewHandler = application.getViewHandler();
         UIViewRoot viewRoot = viewHandler.createView(context, context.getViewRoot().getViewId());
         context.setViewRoot(viewRoot);
         context.renderResponse();
    }

mas não funciona. somente troca quando vou na barra de endereços do firefox e aperto enter para recarregar a pagina ai o captcha recalcula

tenho que fazer o url da imagem buscar novamente no servlet especificado

obrigado

1 Resposta

joaopaulolobo

arthurminarini, vou iniciar a implementação do Captcha com RichFaces… Vc pode me passar sua experiencia q de como foi feita?
Vlw

Criado 29 de junho de 2010
Ultima resposta 11 de jan. de 2011
Respostas 1
Participantes 2