マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

Captchaを表示させるのは簡単

WicketCaptchaを表示させるには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を表示させるのがこんなに簡単にできるのはいいね