Java Spring-如何控制为视图显示的URL?

Java Spring-如何控制为视图显示的URL?,java,spring,model-view-controller,Java,Spring,Model View Controller,我在AccountsController中有4种不同的方法处理4种类型的请求: /帐户显示所有帐户 /帐户/新帐户页面 /帐户/{accountId}/编辑帐户页 /accounts/{accountId}/delete删除一个帐户 1号好。我只返回displaycounts.jsp视图 关于2和3,一旦操作成功,当我将用户从初始视图转到displaycounts.jsp时,URL仍然分别是/accounts/new或/accounts/{accountId}/edit 对于4,我没有一个开始的

我在AccountsController中有4种不同的方法处理4种类型的请求:

/帐户显示所有帐户 /帐户/新帐户页面 /帐户/{accountId}/编辑帐户页 /accounts/{accountId}/delete删除一个帐户 1号好。我只返回displaycounts.jsp视图

关于2和3,一旦操作成功,当我将用户从初始视图转到displaycounts.jsp时,URL仍然分别是/accounts/new或/accounts/{accountId}/edit

对于4,我没有一个开始的观点。这只是一个操作,失败时返回视图EditAccount.jsp,成功时返回视图DisplayAccounts.jsp。同样,最后的URL应该分别是/accounts/{accountId}/edit或/accounts


如何实现这一点?

您可以使用转发到新url作为请求的结果


请参见此示例:

您使用转发到新url作为请求的结果


请参见以下示例:

您不必将jsp与控制器函数相关联。只需返回ModelAndView而不是void,它将调用函数并且不会调用任何视图。

您不必将jsp与controllers函数相关联。只是不返回model和view,而是void,它会调用函数,不会调用任何视图。

我是使用return-forward:/accounts还是return-forward:displayAccounts?4号怎么样?我需要在EditAccount.jsp页面上显示错误消息。如果我转发,我将丢失BindingResult,不是吗?我不知道确切的语法,应该可以通过一些实验和谷歌搜索找到。对于errormessage:将它放在会话中或类似于数据库的东西中,对于简单但快速的nosql dbI来说,这是一个很好的用例。当我使用return-forward:/accounts时,URL仍然是/accounts/new。我怎么能逃避呢?我想我是糊涂了。重定向:/accounts修复了该问题。仍然对重定向和转发到ModelMap的操作感到困惑,但是:我是使用return-forward:/accounts还是return-forward:displaycounts?4号怎么样?我需要在EditAccount.jsp页面上显示错误消息。如果我转发,我将丢失BindingResult,不是吗?我不知道确切的语法,应该可以通过一些实验和谷歌搜索找到。对于errormessage:将它放在会话中或类似于数据库的东西中,对于简单但快速的nosql dbI来说,这是一个很好的用例。当我使用return-forward:/accounts时,URL仍然是/accounts/new。我怎么能逃避呢?我想我是糊涂了。重定向:/accounts修复了该问题。仍然对重定向和转发对ModelMap做了什么感到困惑:哦,我不知道。所以这似乎是第四步的方法。正当如果我绑定错误呢?它们会出现在视图中吗?即使我要返回虚空?嗯。。如果您想显示错误,您应该返回ModelAndView,并可能显示相同的jsp,但附加了错误模型。如果出现错误,您可以返回新的ModelAndViewredirect:+url;“我会尽量让你知道的,”马托,我不知道。所以这似乎是第四步的方法。正当如果我绑定错误呢?它们会出现在视图中吗?即使我要返回虚空?嗯。。如果您想显示错误,您应该返回ModelAndView,并可能显示相同的jsp,但附加了错误模型。如果出现错误,您可以返回新的ModelAndViewredirect:+url;“我会尽量让你知道的,”马特汉克斯回答问题。我今天也有同样的问题谢谢你的提问。我今天也有同样的问题