从 Wicket 1.5 中的 PageParameters 获取地图

发布于 2024-12-12 08:12:39 字数 1214 浏览 3 评论 0原文

我正在尝试将使用 OpenId4Java 的应用程序迁移到 Wicket 1.5。使用迁移说明我已经让一切正常工作。

除了一件事:在 Wicket 1.5 之前,PageParameters 是一个自 OpenId4Java 的 ParameterList 将地图作为参数。

然而在 Wicket 1.5 中,我不知道如何从 PageParameters 中获取地图。 通过 PageParameters NamedPairs 并绘制它的映射并不难。但是创建一个类(在多个地方创建参数列表)感觉不是一个好的解决方案。

对此有什么更简单的解决方案?

ParameterList response = new ParameterList( pageParameters);

- 编辑 - 为我解决问题的代码。

public static ParameterList toParameterList(PageParameters p){
    HashMap<String, String> h = new HashMap<String, String>();
    for(NamedPair pair: p.getAllNamed()){
        h.put(pair.getKey(), pair.getValue());
    }
    return new ParameterList(h);
}

public static ParameterList toParameterList(IRequestParameters rP) {
    HashMap<String, String> h = new HashMap<String, String>();
    for(String name : rP.getParameterNames()){
        h.put(name, rP.getParameterValue(name).toString());
    }
    return new ParameterList(h);
}

I'm trying to migrate an application using OpenId4Java to Wicket 1.5. Using the migration notes I've gotten everything to work.

Except one thing: Before Wicket 1.5 PageParameters was a map which was perfect since OpenId4Java's ParameterList took an map as an argument.

However in Wicket 1.5, I can't figure out how to get an map out of the PageParameters.
Going trough the PageParameters NamedPairs and making a map of of that is not to hard. But creating an class (the creation of a ParameterLists are in several places) does not feel as a good solution.

What is the simpler solution to this?

ParameterList response = new ParameterList( pageParameters);

-- EDIT --
Code that solved the problem for me.

public static ParameterList toParameterList(PageParameters p){
    HashMap<String, String> h = new HashMap<String, String>();
    for(NamedPair pair: p.getAllNamed()){
        h.put(pair.getKey(), pair.getValue());
    }
    return new ParameterList(h);
}

public static ParameterList toParameterList(IRequestParameters rP) {
    HashMap<String, String> h = new HashMap<String, String>();
    for(String name : rP.getParameterNames()){
        h.put(name, rP.getParameterValue(name).toString());
    }
    return new ParameterList(h);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一个人的旅程 2024-12-19 08:12:39

请参阅http://apache-wicket.1842946.n4.nabble.com/Upgrade-1-5-PageParameters-toRequestParameters-tp3871781p3873818.html 解决同样的问题。

最接近的是 org.apache.wicket.request.mapper.parameter.PageParameters.getAllNamed() 您可以编写一个辅助函数将其转换为 Map

See http://apache-wicket.1842946.n4.nabble.com/Upgrade-1-5-PageParameters-toRequestParameters-tp3871781p3873818.html for the same issue.

The closest is org.apache.wicket.request.mapper.parameter.PageParameters.getAllNamed() You can write a helper function to convert it to Map

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文