gpt4 book ai didi

java - 如何使用 Jersey 和 Dropwizard 重定向用户并将消息传递到目标页面?

转载 作者:可可西里 更新时间:2023-11-01 16:13:46 25 4
gpt4 key购买 nike

我有一个 POJO 资源,它定义了一些 HTTP 端点并返回 Dropwizard View 。其中一些端点只是执行一个操作(例如更新数据库),然后将用户转发到另一个端点。例如,用户位于 GET/foo 位置并提交了一个表单。这会将它们定向到端点 POST/foo/submit,处理它们的提交,然后将它们转发到 GET/foo/done。例如,如果他们刷新页面,这可以防止重新提交表单。这种转发目前是通过 Jersey 的 Response.seeOther() 方法完成的(返回一个 Response 而不是一个 View)。

我希望能够做的是,当处理方法处理他们的提交时,生成某种消息(错误消息、警告、成功等)并将该消息传递给我们转发到的页面。例如,在 GET/foo/done 中,我希望它在页面顶部显示“提交完成!”或“提交失败,因为……”。

我进行了一些搜索,很多人都建议抛出 WebApplicationException - 但并非我的所有情况都是错误。有时我只想显示对成功操作的确认。但是我不知道如何获取接收消息的接收方法。我之前在 Python 中通过让处理方法接受可选字典来完成此操作,但不幸的是我使用的是 Java 7,所以我无法为方法提供具有默认值的可选参数。

感谢您的帮助。

最佳答案

重定向只会发送 GET 请求。 GET 请求不应有任何正文。要用 GET 请求发送任意数据,只需在查询字符串中发送即可(当然这里应该没有 secret 信息)。例如

@Path("foo")
public class FooResource {

@GET
@Path("done")
public String getDone(@QueryParam("message") String message) {
return message;
}

@POST
@Path("submit")
public Response postData() {
String message = UriComponent.encode(
"You have perefected submitting!",
UriComponent.Type.QUERY_PARAM_SPACE_ENCODED);
return Response.seeOther(URI.create("/api/foo/done?message=" + message)).build();
}
}

关于java - 如何使用 Jersey 和 Dropwizard 重定向用户并将消息传递到目标页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29810649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com