WicketでCaptchaを表示させるにはwicket-extensionsに含まれているCaptchaImageResourceを使えば簡単にできる。WicketのExapmlesにあるcaptchaの表示に関わる部分だけを取り出してみた。本当なら文字列はランダムにするんだけど、今回は毎回同じ文字列が表示される
まずはHTML
<html> <head> <title>Captcha Test</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <!-- ここにCaptchaを表示させる --> <img wicket:id="captchaImage" /> </body> </html>
次に上のHTMLに対応したJavaのソース
package captcha; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.extensions.markup.html.captcha.CaptchaImageResource; public class Captcha extends WebPage{ public Captcha(){ //表示させたい文字列をコンストラクタに渡す CaptchaImageResource resource = new CaptchaImageResource("Captcha!"); Image image = new Image("captchaImage", resource); add(image); } }
アプリケーションクラスとフィルタマッピングは省略。Captchaを表示させてるコードはJava側の
CaptchaImageResource resource = new CaptchaImageResource("Captcha!"); Image image = new Image("captchaImage", resource); add(image);
この3行のみ、文字列がランダムじゃないけど、Captchを表示させるのがこんなに簡単にできるのはいいね