Redessinez jcaptcha en utilisant ajax en cliquant sur le bouton recharger Si vous rechargez tout l'écran, jcaptcha sera également rechargé ...
xhtml
<!--affichage jcaptcha-->
<div class="jcaptchaItemBlook">
<h:graphicImage id="jcaptchaImage" value="/jcaptcha" />
</div>
<!--pièce de montage ajax-->
<h:commandButton class="jcaptchaReloadBtn" value="Mise à jour de l'image" immediate="true">
`<f:ajax listener="#{controller.reload}" render="jcaptchaImage" event="click" />
</h:commandButton>
java
public String reload() throws CaptchaServiceException {
return "#{request.contextPath}/jcapcha" + Math.floor(Math.random() * 100);
}
xhtml
<!--affichage jcaptcha-->
<div class="jcaptchaItemBlook">
<img id="jcaptchaImage" src="#{request.contextPath}/jcaptcha" />
</div>
xhtml
<!--affichage jcaptcha-->
<div class="jcaptchaItemBlook">
<p:graphicImage id="jcaptchaImage" value="/jcaptcha" cache="false" />
</div>
xhtml
<!--affichage jcaptcha-->
<h:panelGroup class="jcaptchaItemBlook">
<p:graphicImage id="jcaptchaImage" value="/jcaptcha" cache="false" />
</h:panelGroup>
<!--pièce de montage ajax-->
<h:commandButton class="jcaptchaReloadBtn" value="Mise à jour de l'image" immediate="true">
<f:ajax listener="#{controller.reload}" render="jcaptchaImage" event="click" />
</h:commandButton>
java
@Getter
@Setter
private String captchaImage;
public void reload() throws CaptchaServiceException {
this.setCaptchaImage("/jcaptcha");
}
--Changé pour utiliser setter en définissant la valeur de retour sur void selon les bases de ajax. -Je pensais que c'était subtil si c'était
http://d.hatena.ne.jp/kaiseh/20090502/1241286415 http://www.in-vitro.jp/blog/index.cgi/Library/20050827_01.html
https://yoshio3.com/2011/01/18/jsf-20-ajax-support/ https://stackoverflow.com/questions/5822665/jcaptcha-refresh-only-image-not-whole-page
https://www.primefaces.org/docs/vdl/4.0/primefaces-p/graphicImage.html http://download.oracle.com/otn-pub/jcp/jsf-2.0-fr-eval-oth-JSpec/jsf-2_0-fr-spec.pdf
Recommended Posts