带有查询字符串的 Restlet 路由
Restlet routing with query string
我有一个当前路由如下的资源:
router.attach("/{version}/content/{language}", ContentResource.class);
我想向该资源添加一个查询字符串,如下所示:
router.attach("/{version}/content/{language}?segment={segment}", ContentResource.class);
问题是,当我尝试通过路由访问资源时,我无法进入它。
有人可以解释为什么以及如何解决吗?
您不必在路由定义级别指定查询参数。如果要使用名为 segment
的查询参数,请按以下方法操作:
路由定义
router.attach("/{version}/content/{language}", ContentResource.class);
获取查询参数值
public class ContentResource extends ServerResource {
String value = getQueryValue("segment");
(...)
}
希望对你有帮助,
蒂埃里
您应该定义路由行为:
TemplateRoute myRoute = router.attach("/{version}/content/{language}?segment={segment}", ContentResource.class);
myRoute.setMatchingQuery(true);
我有一个当前路由如下的资源:
router.attach("/{version}/content/{language}", ContentResource.class);
我想向该资源添加一个查询字符串,如下所示:
router.attach("/{version}/content/{language}?segment={segment}", ContentResource.class);
问题是,当我尝试通过路由访问资源时,我无法进入它。
有人可以解释为什么以及如何解决吗?
您不必在路由定义级别指定查询参数。如果要使用名为 segment
的查询参数,请按以下方法操作:
路由定义
router.attach("/{version}/content/{language}", ContentResource.class);
获取查询参数值
public class ContentResource extends ServerResource { String value = getQueryValue("segment"); (...) }
希望对你有帮助, 蒂埃里
您应该定义路由行为:
TemplateRoute myRoute = router.attach("/{version}/content/{language}?segment={segment}", ContentResource.class);
myRoute.setMatchingQuery(true);