在Jersey资源方法中获取当前ApplicationPath值

时间:2015-12-03 14:17:06

标签: jersey

我有一个使用mcv和freemarker模板的jersey 2.0应用程序。在一个模板中,我有一个表单,其行为是重新提交到相同的URL。说表格网址是:

http://my-domain.com/app-base-path/my-form 

所以应用程序注释是:@ApplicationPath("app-base-path") 和资源路径注释为@Path("my-form")。大。

我试图将表单操作动态设置为:

<form name="settings" action="${model.formAction}" method="post">

行动应该相等:app-base-path / my-form 我试图通过注入UriInfo来设置资源中的值。这就是我得到的:

formAction = uriInfo.getPath();
//result formAction = "my-form"  

如何检索包含app-base-path的路径? 没有javascript请!

1 个答案:

答案 0 :(得分:0)

您可以使用uriInfo.getAbsolutePath()获取绝对URI,该URI将返回带有相应资源方法的完整 URI的URI

http://localhost:8080/app-base-path/myform

URI可以分为不同的部分,URI类具有获取这些部分的特定方法

scheme            authority              path
--------------------------------------------------------
http    ://     localhost:8080     /app-base-path/myform

URI类有获取所有这些的方法。

uri.getScheme()
uri.getAuthority()
uri.getPath()

我很确定我不需要告诉你你想要哪一个: - )