gpt4 book ai didi

java - Wicket IndexedParamUrlCodingStrategy : how to specify missing parameters?

转载 作者:行者123 更新时间:2023-12-01 15:51:15 26 4
gpt4 key购买 nike

如何为 IndexedParamUrlCodingStrategy 指定空位置参数?

我有一个 SearchPage 安装有:

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

这允许我构建如下网址:

   /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

最佳答案

我不知道这是否可以通过 IndexedParamUrlCodingStrategy 实现。您可能必须切换到 MixedParamUrlCodingStrategy它通过一组定义的参数创建 URL,而不是“从 0 开始按升序排列的数字参数”。 IndexedParamUrlCodingStrategy 的 Javadoc 的这一部分让我认为它要么不适合您的用例,要么您必须“发明”一些神奇的非空空字符串(它的味道真的很糟糕)。IndexedParamUrlCodingStrategy 不会产生任何“//”(刚刚检查了来源)

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

显然,您可以使其适合您的用例或将其报告为错误,但我不知道这是否不是一个功能...

关于java - Wicket IndexedParamUrlCodingStrategy : how to specify missing parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5985882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com