Wicket - 以优雅的方式在会话级别检索PageParameters

时间:2013-04-10 14:21:47

标签: java wicket wicket-6

我需要从url中检索参数。当我在WebPage级别执行此操作时,这是一个简单的情况 - 它可以通过这样的方式完成:

    @MountPath(INDEX_PREFIX + "/${" + OBJECT_ID_KEY + "}")
    public class IndexPage extends WebPage
    {
            public IndexPage(PageParameters parameters)
            {
                    String id = parameters.get(OBJECT_ID_KEY).toString();

                    // etc...
            }
    }

但我需要在 getRoles()方法会话级上完成。

我是这样做的:

    @Override
    public Roles getRoles()
    {
            final Request request = RequestCycle.get().getRequest();
            List<String> segments = request.getUrl().getSegments();
            if (segments != null && segments.size() > 1 && INDEX_PREFIX.equals(segments.get(0)))
            {
                    String id = segments.get(1);
            }

            // etc...
    }

网址结构如下所示: www.my.page.com/index/5

索引 - INDEX_PREFIX

5 - OBJECT_ID_KEY

有更好的方法???

1 个答案:

答案 0 :(得分:3)

您已经拥有Request - 现在只需按照API: - )

Request req = RequestCycle.get().getRequest();
IRequestParameters params = req.getRequestParameters();
StringValue idValue = params.getParameterValue("id");

然后你去。