2011-05-12 8 views
0

IndexedParamUrlCodingStrategyに空の位置パラメータを指定するにはどうすればよいですか?Wicket IndexedParamUrlCodingStrategy:欠落しているパラメータを指定する方法は?

String category = parameters.getString("0", ""); 
    String searchTerm = parameters.getString("1", ""); 
    String filter = parameters.getString("2", "all"); 
    String pagination = parameters.getString("3", "1-10"); 

これを:

/search/category/searchTerm/all/21-30 

私は成功したとの位置のparamsを取得できます。

mount(new IndexedParamUrlCodingStrategy("search", SearchPage.class)); 

これは私のようなURLを構築することができます:

は私が持っているSearchPageはでマウント空のパラメータを持つURLを許可します:

/search//searchTerm/all/21-30 /* no category specified */ 

これは正常に動作しますが、私は不足しているのparamsとSearchPageからリンクを作成に見えることはできません。むしろ、私の意図したよりも

/search/searchTerm/all/21-30 

params.put("0", ""); // try to set "empty" category 
    params.put("1", "searchTerm"); 
    params.put("2", "all"); 
    params.put("3", "21-30"); 
    BookmarkablePageLink<SearchPage> link = new BookmarkablePageLink<SearchPage>("link", SearchPage.class, linkParams); 

これは、ようなURLにリンクになり

/search//searchTerm/all/21-30 

答えて

1

これはIndexedParamUrlCodingStrategyで可能であるならば、私は知りません。 「0から始まる昇順で数値パラメータ」ではなく、定義済みのパラメータセットによってURLを作成するMixedParamUrlCodingStrategyに切り替える必要があります。 IndexedParamUrlCodingStrategyのJavadocのこの部分は、あなたのユースケースには合っていないか、または真実でない空の文字列(本当に悪い匂いがする)を「発明」しなければならないと思います。 IndexedParamUrlCodingStrategyは明らか

89 if (!url.endsWith("/")) 
90 { 
91  url.append("/"); 
92 } 

あなたはそれがあなたのユースケースに合わせて作ることができるか、バグとして、私は知らないと報告している任意の「//」(単にチェックするソース)を生成しない場合は、このISN機能...

関連する問題