我需要从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");
然后你去。