我如何支持Jersey的本地化?
问题描述:
我正在设计一个REST API,我希望将来可以本地化。我如何支持Jersey的本地化?
所以我定义的URL是形式的
/en/<resource_url>
具有能够支持
/fr/<resource_url>
今后如果需要的话的意图。
但是我只想定义每个资源url服务一次。因此,我想我需要得到的URL解析和重写没有URL的语言片段之前,它是匹配的服务。最后,这种语言应该以某种方式提供给他们,以便他们在必要时进行本地化。
我该如何做到这一点?
我在内嵌Jetty容器的Jersey 1.17内嵌入一个更大的服务器进程。
答
您可以使/en/
或/fr/
部件成为变量。然后将您的区域设置为变量的值。这里有一个例子:
@Path("/{locale}/username")
public class UserResource {
@GET
@Produces("text/xml")
public String getUser(@PathParam("locale") String locale) {
...
}
}
但是,这可能不是最好的方式去了解它。回答之后,我发现了另一个SO问题,这是解决问题的更好方法:Getting the client locale in a jersey request通过这种方式,您无需将其添加到URL中。只要让客户端设置一个标题。
我的+1是用于标题的使用 – fpmoles 2013-04-27 15:35:20