Wicket IndexedParamUrlCodingStrategy: как указать недостающие параметры? - PullRequest
0 голосов
/ 13 мая 2011

Как я могу указать пустые позиционные параметры для IndexedParamUrlCodingStrategy?

У меня есть SearchPage, смонтированный с:

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

Это позволяет мне создавать URL, такие как:

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

Я могу успешно получить позиционные параметры с помощью:

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

Это позволяет использовать URL-адреса с пустыми параметрами, например:

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

Это работает нормально, но я могу ' создает ссылки на SearchPage с пропущенными параметрами.

  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

, а не мояпредназначен:

  /search//searchTerm/all/21-30

1 Ответ

1 голос
/ 13 мая 2011

Я не знаю, возможно ли это с IndexedParamUrlCodingStrategy.Возможно, вам придется переключиться на MixedParamUrlCodingStrategy , который создает URL-адрес по определенному набору параметров вместо «числовых параметров в порядке возрастания, начинающихся с 0».Эта часть Javadoc IndexedParamUrlCodingStrategy заставляет меня думать, что либо она не подходит для вашего сценария использования, либо вам нужно «изобрести» какую-то магическую непустую пустую строку (которая пахнет очень плохо).IndexedParamUrlCodingStrategy не будет выдавать никаких «//» (только проверил источники)это не особенность ...

...