在Spring MVC中,
当返回值包含重定向前缀时,viewResolver将其识别为需要重定向的特殊指示。视图名称的其余部分将被视为重定向URL。客户端将向该重定向URL发送一个新请求。
我们可以编写如下处理程序方法来处理重定向:
@RequestMapping(value="/foo", method = RequestMethod.POST )
public String foo(HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute("message", "I am message");
return "redirect:/bar";
}
现在我们可以像这样在bar()
中访问这个重定向属性
@RequestMapping(value="/bar", method = RequestMethod.GET )
public String bar(HttpServletRequest request, HttpServletResponse response, Model model) {
String error = (String) model.asMap().get("message");
}
通常我们可以在bar()
方法中访问这个重定向属性,但是当我在返回语句中指定一个URL作为参数化url时,如下所示
return "redirect:/bar?x=1&y=2";
我无法访问重定向属性
我进一步检查了chrome中的网络,发现在重定向后,在return语句中使用未参数化url时,jsessionid保持不变,但在使用参数化url时,它确实发生了变化。
有人能告诉我为什么会这样吗?或者我在哪里出错了?
如果要访问重定向控制器中的参数x和y的值,需要从请求中获取参数。
@RequestMapping(value="/bar", method = RequestMethod.GET )
public String bar(HttpServletRequest request, HttpServletResponse response, Model model) {
System.out.println(request.getParameter("y"));
return null;
}
我试图重定向路由从控制器函数后,在Laravel 5.4表单提交过程中,如下面的链接所说 https://laravel.com/docs/5.4/redirects#redirecting-命名路线 路线; 控制器; 当我试图重定向我得到这个错误。 InvalidArgumentExcema在UrlGenerator.php304行:路由[配置文件]未定义。 关于重定向,我已经搜索了好几次,但都
我是一个使用ASP.NET MVC5的新手。我需要对控制器进行Jquery调用,以返回一个传递单个参数的新视图。我可以看到很多类似MVC3和之前版本的例子,但却很难找到任何处理MVC4或MVC5并起作用的例子。我所要做的就是从输入元素获取一个值,将其传递给控制器ActionResult,然后打开一个新视图。 PageTwo是视图,Home是控制器。 我试过的代码(包括许多其他代码)通常在404:
问题内容: 我正在为struts2拦截器创建一个示例。我创建了一个简单的登录页面,并使用了自定义拦截器类对输入进行加密。但是拦截器正在从as 读取输入的值。 我不明白我在做什么错。我想拦截器类已经足够了。如果您需要更多我的代码,请告诉。 struts.xml 拦截器.java文件 是我定义的一个单独的类,它自己可以正常工作。 问题答案: 如果您要访问参数,则拦截器应排在第一位 您的问题是这些参数不
Swagger不在UI和JSON中显示参数,即使我的方法有参数,当我添加[FromBody]标记 Swagger UI无参数JSON文件无参数 操作方法时,尤其会发生这种情况: 我使用全新的 Asp.net 核心3.1和2.2 Web应用程序与API模板来测试这一点,我完全按照文档配置 服务进行了配置: 配置:< br > 当我使用[FromRoute]等其他属性时,它确实起作用 我还尝试了这样的
我有Spring acpect,它会在我的应用程序中的每个控制器方法周围触发。在方面的主体中,我想访问方法签名中声明的所有请求参数。有没有一种简单的方法可以避免反思?
问题内容: 我注意到以下代码将用户重定向到项目内的URL, 然而,以下内容已按预期正确重定向,但需要http://或https:// 我希望重定向始终重定向到指 问题答案: 你可以通过两种方式来实现。 第一: 第二: