1

我正在尝试将使用 OpenId4Java 的应用程序迁移到 Wicket 1.5。使用迁移说明,我已经完成了所有工作。

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

但是在 Wicket 1.5 中,我无法弄清楚如何从 PageParameters 中获取地图。通过 PageParameters NamedPairs 并制作一张地图并不难。但是创建一个类(在几个地方创建一个ParameterLists)感觉不是一个好的解决方案。

什么是更简单的解决方案?

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);
}
4

1 回答 1

0

有关相同问题,请参阅http://apache-wicket.1842946.n4.nabble.com/Upgrade-1-5-PageParameters-toRequestParameters-tp3871781p3873818.html

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

于 2011-11-07T19:12:53.767 回答