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