我正在使用RESTlet处理来自浏览器的PUT请求,并且在成功的PUT之后,我想将浏览器重定向到不同的网页。
看起来像标准的PUT-> REDIRECT-> GET给我,但我不知道如何在我的RESTlet资源中做到这一点。
这是我在PUT完成所要求的工作后的代码:
getResponse().redirectSeeOther("/account");
然而,这导致浏览器获得:
Response Headers
Location riap://application/account
当然,“riap”协议对浏览器没有意义,“应用程序”不是服务器名称。似乎应该有一种方法可以将重定向发送回浏览器,而无需在我的redirectSeeOther()调用中构建整个URL。构建URL似乎容易出错。
是否有一种简单的方法可以重定向而无需从头开始构建整个网址?
谢谢!
此致
Stephen McCants
答案 0 :(得分:1)
虽然我不是100%确定你正在尝试做什么类型的课程。
尝试:
Reference reference = getRequest().getRootRef().clone().addSegment("account");
redirectSeeOther(reference);
我通常也将身体设为
return new ReferenceList(Arrays.asList(reference)).getTextRepresentation();
但对所有客户来说可能不是必需的,或者根本不需要。我通常会在扩展ServerResource - Restlet(2.0.x或2.1.x)的类中使用此样式。