我需要从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

有没有更好的办法???

最佳答案

您已经拥有Request了-现在只需遵循API :-)

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


然后你去。

09-10 20:18