[JAVA] reload jCaptcha implémenté avec ajax

environnement

Chose que tu veux faire

Redessinez jcaptcha en utilisant ajax en cliquant sur le bouton recharger Si vous rechargez tout l'écran, jcaptcha sera également rechargé ...

Méthode

Succès

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);
}

Exemple d'échec

xhtml


<!--affichage jcaptcha-->
<div class="jcaptchaItemBlook">
  <img id="jcaptchaImage"  src="#{request.contextPath}/jcaptcha" />
</div>

Explication etc.

Un incident s'est produit!

Comment répondre

xhtml


<!--affichage jcaptcha-->
<div class="jcaptchaItemBlook">
  <p:graphicImage id="jcaptchaImage" value="/jcaptcha" cache="false" />
</div>

Exemple final

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

, alors je l'ai changé en <h: panelGroup>. --getter / setter utilise lombok.jar.

Cliquez ici pour l'implémentation de jcaptcha

http://d.hatena.ne.jp/kaiseh/20090502/1241286415 http://www.in-vitro.jp/blog/index.cgi/Library/20050827_01.html

Site de référence

https://yoshio3.com/2011/01/18/jsf-20-ajax-support/ https://stackoverflow.com/questions/5822665/jcaptcha-refresh-only-image-not-whole-page

Site de référence ② (résoudre l'occurrence d'un incident)

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

reload jCaptcha implémenté avec ajax
Implémenter GraphQL avec Spring Boot
Implémentez iOS14 UICollectionView avec CustomCell.
[Rails] Rendre la pagination compatible avec Ajax
Point 86: mettre en œuvre sérialisable avec beaucoup de prudence
Implémenter le lien texte avec Springboot + Thymeleaf
[Java EE] Implémenter le client avec WebSocket
Implémenter le téléchargement de fichiers avec Spring MVC
Mémo à obtenir avec Struts2 + Ajax