Develop and Download Open Source Software

Bookmarkableなリンクのパラメータに「/」が入る場合下記のようにするとリンクをクリックした時点で404が発生します。

public class ParameterTestPageFrom extends WebPage {
    public ParameterTestPageFrom(){
        PageParameters param = new PageParameters();
        param.add("url","http://example.jp/");
        add(new BookmarkablePageLink("next",ParameterTestPageTo.class, param));
    }
}
この場合URLEncoderを使用してエンコーディングを行い、パラメータを受け取るクラス側(今回だとParameterTestPageToクラス)にてパラメータを取得する際にデコーディングを行うことで問題を回避できます。
public class ParameterTestPageFrom extends WebPage {
    public ParameterTestPageFrom() throws UnsupportedEncodingException{
        final PageParameters param = new PageParameters();
        param.add("url", URLEncoder.encode("http://example.jp/", "UTF-8"));
        add(new BookmarkablePageLink("next",ParameterTestPageTo.class, param));
    }
}
public class ParameterTestPageTo extends WebPage {
    public ParameterTestPageTo(PageParameters params) throws UnsupportedEncodingException{
        //ここでデコーディングするのを忘れずに!
        add(new Label("url", URLDecoder.decode(params.getString("url"), "UTF-8")));
    }
}


SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.