Dropwizard - 如何从视图中重定向服务器端?

Bra*_*rks 7 java view dropwizard

我是Drop Wizard的新手,并希望从服务器端视图重定向到我的应用程序中的另一个URL.

DropWizard会以某种方式结束这个常见任务吗?

例如

@GET
public View getView(@Context HttpServletRequest req)
{
     View view = new View();

     if (somethingBad)
     {
         // code here to redirect to another url, eg /bad_data
     }
     else
     {
          return view;
     }
}
Run Code Online (Sandbox Code Playgroud)

Bra*_*rks 16

这是一个简单的代码示例,实际上使用WebApplicationException进行重定向.所以你可以将它放在你的视图中,或者放在你的资源中,然后随时抛出它.

URI uri2 = UriBuilder.fromUri(url).build();
Response response = Response.seeOther(uri2).build();
throw new WebApplicationException(response);
Run Code Online (Sandbox Code Playgroud)

您还可以让资源返回视图或重定向响应:

@GET
public Object getView(@Context HttpServletRequest req)
{
     if (somethingBad())
     {
         URI uri = UriBuilder.fromUri("/somewhere_else").build();
         return Response.seeOther(uri).build();
     }

     return new View();
}
Run Code Online (Sandbox Code Playgroud)

  • 使用`javax.ws.rs.core.UriBuilder`并保存7行代码(不需要处理异常),例如`URI uri = UriBuilder.fromPath("/ publisher/{id}").build(publisher) .getId());` (4认同)